Форум программистов, компьютерный форум, киберфорум
C++: Сети
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ mail socket https://www.cyberforum.ru/ cpp-networks/ thread154769.html
#include "stdafx.h" #include <iostream> #include <windows.h> #include <winsock.h> #pragma comment(lib, "ws2_32.lib") #define OK 0 #define FAIL 1 #define CONNECT_LOST1 2
Socket C++ C++
#pragma comment (lib, "ws_32.lib") #include "stdafx.h" #include <iostream> #include <stdio.h> #include <conio.h> #include <windows.h> #include <string> #include <winsock.h> using namespace std;
C++ SOCKET: send(), recv() Начал разбираться с сокетами и в самом начале застрял на элементарном, с функциями send и recv, в програмке в которой сервер отправляет сообщения на клиент и там оно выводится на экран... Вот коды двух программ (клиента и сервера) Сервер: int main() { WORD wVersion; WSADATA wsaData; int err; wVersion = MAKEWORD(1,1); err = WSAStartup(wVersion, &wsaData); https://www.cyberforum.ru/ cpp-networks/ thread154280.html C++ Подключение к БД через интеренет и/или локальную сеть https://www.cyberforum.ru/ cpp-networks/ thread153375.html
Здрасте. Ситуация такая: нужно приложение, для доступа к документам, хранящимся на сервере. Нужен клиент, через который с некоторых пк этот клиент к БД будет подключаться через интернет, а с некоторых через локальную сеть. Вопросы: можно ли это вобще реалищовать на c++? и если можно, то с чего начать? (в работе с сетями совсем некомпетентен). Заранее спасибо.
Как загрузить файл с FTP? C++
Есть запросы к FTP-серверу: LIST и NLST. Оба возвращают список файлов и директорий в указанной как параметр папке. Но каждый сервер возвращает этот список в своём формате. Как в общем случае можно узнать, является ли данная запись в возвращённой строке файлом или директорией? Например, по-моему, в QFTP есть функция isFile() или что-то в этом роде. Но мне нельзя использовать стандартные классы,...
C++ как считать ответ от сервера??? Вот есть примерчик который отправляет соккет на определённый сервер на 80 порт, ну сервер по идее должен ответить, как теперь считать ответ от сервера, и вывести его на экран? #include <windows.h> #include <winsock.h> #include <stdio.h> WSADATA ws; SOCKET s; https://www.cyberforum.ru/ cpp-networks/ thread152412.html
C++ Не могу получить исходный текст страницы Не могу получить исходный текст страницы. Может неправильно составлен http запрос? #include <sys/types.h> #include <sys/socket.h> #include "stdio.h" #include <netinet/in.h> int main() { char datato = "GET forum.xakep.ru HTTP/1.1\r\n\r\n"; https://www.cyberforum.ru/ cpp-networks/ thread152328.html C++ telnet через С++
задание такое: нужно через командную строку в telnet и оттуда зайти на switch'и и дать им команду reboot если что не ясно, спрашивайте заранее благодарен:bravo:
C++ Работа с сокетами: получить исходный код странички в интернете как зайти на определённую страничку в интернете и получить весь её исходный код? https://www.cyberforum.ru/ cpp-networks/ thread151738.html C++ сырые сокеты ощибка 10013 При создании сырого сокета получается ошибка 10013 Антивирусов не стоит, брандмауэр отключил Права админа есть В чем еще мб проблема? https://www.cyberforum.ru/ cpp-networks/ thread151472.html
FTP client C++
Здравствуйте. У меня задание - написать простенький ftp-клиент, не используя стандартных классов типа CInternetConnection, а используя сокеты и запросы к серверу, но я никогда раньше не работал с сетью, и не могу понять, почему у меня никогда не может правильно отработать функция connect, и вообще, правильно ли я делаю? #include "stdafx.h" #include "winsock2.h" #include "stdlib.h"...
C++ Протокол SIP Получил задание - написать на С или С++ программу, которая будет выделять из потока пакетов пакеты протокола SIP. Если честно, толком с протоколами знаком очень поверхностно, и очень слабо представляю себе, как программа должна работать. Если кто может, набросайте план программы. Также не отказался бы от любых ссылок на похожие программы. P.S. Еще часть задания - выделить основные типы... https://www.cyberforum.ru/ cpp-networks/ thread150766.html
373 / 287 / 97
Регистрация: 17.12.2009
Сообщений: 567
21.07.2010, 02:51 0

Winsock - C++ - Ответ 866632

21.07.2010, 02:51. Показов 9618. Ответов 5
Метки (Все метки)

Ответ

сервер должен ресивать в цикле, тут на форуме и вообще дофига всего.
например:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
//клиент
#include <iostream>
#include <winsock.h>
//не забываем подключить ws2_32.lib
using namespace std;
 
int main()
{
  WSAData WSData;
  WSAStartup(0x101,&WSData);
  SOCKET S = socket(AF_INET,SOCK_STREAM,0);
  sockaddr_in SA;
  SA.sin_family=AF_INET;
  SA.sin_port=htons(3135);
  SA.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");
  connect(S,(sockaddr*)&SA,sizeof(SA));
  string s;
  cin >> s;
  char len=s.length();
  send(S,&len,1,0);
  send(S,s.c_str(),s.length(),0);
  //int n;
  //cin>>n;
  closesocket(S);
  return 0;
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
//сервер
#include <iostream>
#include <winsock.h>
//не забываем подключить ws2_32.lib
using namespace std;
 
int main()
{
    //Перед началом использования библиотеки ее необходимо подготовить к работе с помощью вызова функции
    // WSAStartup(Ver, lpWSAData), передав ей в старшем байте номер требуемой версии, а в младшем подверсии.
    // Аргумент lpWSAData должен указывать на структуру WSADATA, в которую при успешной инициализации
    //будет занесена информация о производителе библиотеки. Если инициализация не удалась, то функция
    //возвращает не нулевое значение.
    WSAData WSData;
    //WSAStartup позволяет указать версию winsock или получить информацию об ее конкретной реализации
    WSAStartup(0x101,&WSData);
    // Создаем сокет    socket ( int af, int type, int protocol ).
    //Первый слева аргумент указывает на семейство использу-
    //емых протоколов, AF_INET - используеться при создании интернет приложений. SOCK_STREAM - тип
    //создаваемого сокета, SOCK_STREAM (потоковый) или SOCK_DGRAM (дейтаграммный) или SOCK_RAW
    //(сырой).Последний аргумент задает тип создаваемого сокета, нулевое значение соответствует выбору по
    //умолчанию, ТСР - для потоковых, и UDP - дейтограммных.
    //Если функция завершилась успешно то она возвращает дескриптор сокета.
    SOCKET S = socket(AF_INET,SOCK_STREAM,0);
    //Далее расмотрим установку соединения. Заполнение структуры  sockaddr_in :
    sockaddr_in SA;
    SA.sin_family=AF_INET;  //AF_INET характеризует набор протоколов, соответствующий данному соединителю
    SA.sin_port=htons(3135); // htons переводит число из обычного в сетевой порядок бит.
    SA.sin_addr.S_un.S_addr=INADDR_ANY;
    //bind присваивает определенный адрес заданному соединителю
    //bind(SOCKET S, const struct sockaddr far*name, int namelen)
    //s - целочисленный код дескриптора
    //параметр name (идентификатор локального адреса) обычно содержит три величины:
    //IP-адрес ЭВМ, код протокольного набора, номер порта, который определяет характер приложения.
    //Параметр namlen определяет длину второго параметра
    bind(S,(sockaddr*)&SA,sizeof(SA));
    //Установка в режим ожидания осуществляется командой listen, которая организует очередь запросов:
    //R=listen(SOCKET S, int backlog)
    //где backlog - задает максимальный размер очереди для приходящих запросов соединения
    listen(S,SOMAXCONN);
 
    //Запросы из очереди извлекаются оператором accept:
    //accept(s, struct sockaddr FAR*addr, int FAR*addrlen),
    //где s - дескриптор соединителя, который прослушивает соединение (тот же, что и в listen),
    //addr - опционный указатель на структуру, которая содержит адрес, addrlen - код длины адреса.
    //*************************************************************************************
    //Оператор accept позволяет серверу принять запрос от клиента. Когда входная очередь сформирована,
    //программа реализует процедуру accept и переходит в режим ожидания запросов.
    //Программа извлекает первый элемент очереди, создает новый соединитель со свойствами, идентичными s,
    //и при успешном выполнении возвращает дескриптор нового соединителя.
    //При возникновении ошибки возвращается код INVALID_SOCKET.
    //По окончании обработки запроса сервер вновь вызывает accept, который возвращает ему дескриптор
    //соединителя очередного запроса, если таковой имеется.
    //Если очередь пуста, accept блокирует программу до получения связи.
    SOCKET NS;
    while ((NS = accept(S,0,0))!=INVALID_SOCKET)
    {
        cout<<"-------------------->\n";
        cout<<"Connected...\n";
        char n = 0;
        recv(NS,&n,1,0);
        cout<<"Received Length = "<< int(n) <<"\n";
        char* a=new char[100];
        recv(NS,a,n,0);
        cout<<"Received: \"";
        for (int i=0;i<n;i++) { cout<<a[i]; }
        cout<<"\"\n";
        closesocket(NS);
        cout<<"-------------------->\n";
    }
    closesocket(S);
    //int n;
}
надо быть полюбопытнее. Когда хочешь чего то выучить по нормальному не лезь в манул за двумя-тремя функциями, а бери учебник - читай и практикуй не ленясь. Очень помогае изображать материал в виде схем...

Вернуться к обсуждению:
Winsock C++
1
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.07.2010, 02:51
Готовые ответы и решения:

WinSock
#include &quot;winsock2.h&quot; #define MAX_PACKET_SIZE 4096 WSADATA ws; hostent* hn; char buff ; if...

WinSock
Имеется два приложения. Они связываются через winsock... но если отослать что-либо от одного...

WinSock на C++
Только начинаю осваивать WinSock написал простейшее приложение-сервер и приложение-клиент и че та...

C++ WinSock
Здравствуйте. Есть необходимость написать виртуальный файловый сервер, который будет обрабатывать...

5
21.07.2010, 02:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.07.2010, 02:51
Помогаю со студенческими работами здесь

WinSock
Есть самоучители на чистом Си по теме WinSock??

c++ winSock
Всем привет. У меня возникла проблема, не понятно из-за чего не хочет биндить ни клиент, ни...

Winsock
День добрый. Есть такой код: long CUDPInterface::OpenPort() { m_connection_state = false;...

winsock
Когда в клиенте отправляю сообщение приходит всегда число 10, найдите ошибку пожалуйста! сервер:...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru