Программное обеспечение компьютерных сетей и информационных систем. Баканов В.М. - 53 стр.

UptoLike

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

- 53 -
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)
{
closesocket(srv_socket);
MessageBox(NULL, "Ошибка соединения", "Error", MB_OK);
return;
}
} // конец функции SetConnection
В вышеприведенном листинге вначале с помощью функции socket соз-
дается сокет, затем выполняется заполнение адресной информацией структу-
ры dest_sin. С целью получения адреса IP используется функция
gethostbyname, в качестве параметра указывается имя узла localhost. В файле
HOSTS это имя всегда отображается на адрес 127.0.0.1
. . . другие строки файла localhost . . .
127.0.0.1 localhost
. . . другие строки файла localhost . . .
Адрес 127.0.0.1 является локальным, его можно использовать для тести-
рования приложений, выполняющих обмен данных при помощи протокола
TCP/IP, запуская серверное и клиентское приложения на одном компьютере.
После заполнения структуры с адресной информацией функция connect
создает канал связи с сервером.
6.7.ПЕРЕДАЧА И ПРИЕМ ДАННЫХ
После создания канала связи можно начинать передачу
данных. Для пе-
редачи данных посредством протокола гарантированной доставки TCP мож-
но воспользоваться функциями send и recv, входящими в программный ин-
терфейс Windows Sockets.
                                            - 53 -


  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)
    {
        closesocket(srv_socket);
        MessageBox(NULL, "Ошибка соединения", "Error", MB_OK);
        return;
    }
} // конец функции SetConnection

    В вышеприведенном листинге вначале с помощью функции socket соз-
дается сокет, затем выполняется заполнение адресной информацией структу-
ры dest_sin. С целью получения адреса IP используется функция
gethostbyname, в качестве параметра указывается имя узла localhost. В файле
HOSTS это имя всегда отображается на адрес 127.0.0.1

. . . другие строки файла localhost . . .
127.0.0.1 localhost
. . . другие строки файла localhost . . .

    Адрес 127.0.0.1 является локальным, его можно использовать для тести-
рования приложений, выполняющих обмен данных при помощи протокола
TCP/IP, запуская серверное и клиентское приложения на одном компьютере.
    После заполнения структуры с адресной информацией функция connect
создает канал связи с сервером.

6.7.ПЕРЕДАЧА И ПРИЕМ ДАННЫХ

    После создания канала связи можно начинать передачу данных. Для пе-
редачи данных посредством протокола гарантированной доставки TCP мож-
но воспользоваться функциями send и recv, входящими в программный ин-
терфейс Windows Sockets.