Сетевые технологии. Учебное пособие. Баканов В.М. - 54 стр.

UptoLike

Составители: 

54
Рассмотрим процедуру установки канала связи со стороны клиента, ис-
пользованную в стандартном сетевом приложении
CLIENT
.
Для установки соединения в приложении используется функция
SetConnected:
SOCKADDR_IN dest_sin;
void SetConnection(HWND hWnd)
{
PHOSTENT phe;
// создание сокета
srv_socket = socket(AF_INET, SOCK_STREAM, 0);
if (srv_socket == INVALID_SOCKET)
{
MessageBox(NULL, "Ошибка создания сокета", "Error", MB_OK);
return;
}
// установка IP-адреса и номера порта
dest_sin.sin_family = AF_INET;
// определение адреса узла
phe = gethostbyname("localhost");
if (phe == NULL)
{
closesocket(srv_socket);
MessageBox(NULL, "Ошибка функции GetHostByName",
"Error", MB_OK);
return;
}
// копирование адреса узла
memcpy((char FAR *) &(dest_sin.sin_addr),
phe->h_addr, phe->h_lenght);
// копирование номера порта
dest_sin.sin_port = htons(SERV_PORT);
// установка соединения
if (connect(srv_socket, (PSOCKADDR) &dest_sin, sizeof(dest_sin)) > 0)
  Рассмотрим процедуру установки канала связи со стороны клиента, ис-
пользованную в стандартном сетевом приложении CLIENT.
  Для установки соединения в приложении используется функция
SetConnected:

SOCKADDR_IN dest_sin;

void SetConnection(HWND hWnd)
{
  PHOSTENT phe;

  // создание сокета
  srv_socket = socket(AF_INET, SOCK_STREAM, 0);

  if (srv_socket == INVALID_SOCKET)
  {
      MessageBox(NULL, "Ошибка создания сокета", "Error", MB_OK);
      return;
  }

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

  // определение адреса узла
  phe = gethostbyname("localhost");

  if (phe == NULL)
  {
      closesocket(srv_socket);
      MessageBox(NULL, "Ошибка функции GetHostByName",
                         "Error", MB_OK);
      return;
  }

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

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

  // установка соединения
  if (connect(srv_socket, (PSOCKADDR) &dest_sin, sizeof(dest_sin)) > 0)

                                 54