Глобальные сети компьютеров. Практическое введение в Internet


Приложение CLIENTD - часть 4


// ----------------------------------------------------- // Функция SetConnection // -----------------------------------------------------

void SetConnection(HWND hWnd) { PHOSTENT phe;

// Создаем сокет srv_socket = socket(AF_INET , SOCK_DGRAM, 0); if(srv_socket == INVALID_SOCKET) { MessageBox(NULL, "socket Error", "Error", MB_OK); return; }

// Связываем адрес IP с сокетом dest_sin.sin_family = AF_INET ; dest_sin.sin_addr .s_addr = INADDR_ANY ; dest_sin.sin_port = 0;

if(bind (srv_socket , (LPSOCKADDR )&dest_sin, sizeof(dest_sin)) == SOCKET_ERROR ) { // При ошибке закрываем сокет closesocket (srv_socket); MessageBox(NULL, "bind Error", "Error", MB_OK); return; }

// Устанавливаем адрес IP и номер порта dest_sin.sin_family = AF_INET ;

// Определяем адрес узла

// Адрес локального узла для отладки phe = gethostbyname ("localhost ");

// Адрес удаленного узла // phe = gethostbyname ("maxsinev");

if(phe == NULL) { closesocket (srv_socket); MessageBox(NULL, "gethostbyname Error", "Error", MB_OK); return; }

// Копируем адрес узла memcpy((char FAR *)&(dest_sin.sin_addr ), phe->h_addr , phe->h_length);

// Другой способ указания адреса узла // dest_sin.sin_addr .s_addr = inet_addr ("200.200.200.201");

// Копируем номер порта dest_sin.sin_port = htons(SERV_PORT);

// В случае успеха выводим сообщение об установке // соединения с узлом SendMessage(hwndSb, SB_SETTEXT, 0, (LPARAM)"Connected"); }

// ----------------------------------------------------- // Функция SendMsg // -----------------------------------------------------

void SendMsg(HWND hWnd) { char szBuf[80]; lstrcpy(szBuf, "Test string");

// Посылаем сообщение send to(srv_socket , szBuf, lstrlen(szBuf), 0, (PSOCKADDR )&dest_sin, sizeof(dest_sin)); }

Функция SetConnection создает сокет типа SOCK_DGRAM, так как передача данных будет выполняться с использованием протокола UDP :

srv_socket = socket(AF_INET , SOCK_DGRAM, 0);




Начало  Назад  Вперед



Книжный магазин