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

UptoLike

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

- 44 -
WSANOTSOCK
Указанный в параметре дескриптор не является дескрипто-
ром сокета
WSAINPROGRESS Выполняется блокирующая функция интерфейса Windows
Sockets
WSAEINTR
Работа функции была отменена при помощи функции
WSACancelBlockingCall
6.4.ПАРАМЕТРЫ СОКЕТА
Перед использованием сокета необходимо задать его параметры, жля че-
го следует подготовить структуру типа sockaddr, определение которой по-
мещено ниже
struct sockaddr
{
u_short sa_family;
char sa_data[14];
} ;
typedef struct sockaddr SOCKADDR;
typedef struct sockaddr *PSOCKADDR;
typedef struct sockaddr FAR *LPSOCKADDR;
Для работы с адресами в формате InterNet используется другой вариант
этой структуры, в котором детализируется формат поля sa_data
struct sockaddr_in
{
short sin_family;
u_short sin_port;
struct in_addr sin_addr;
char sin_zero[8];
} ;
typedef struct sockaddr_in SOCKADDR_IN;
typedef struct sockaddr_in *PSOCKADDR_IN;
typedef struct sockaddr_in FAR *LPSOCKADDR_IN;
Поле sin_family определяет тип адреса. Следует записать в это поле зна-
чение AF_INET, которое соответствует типу адреса, принятому в InterNet
(структура srv_address имеет тип SOCKADDR_IN)
srv_address.sin_family = AF_INET;
Поле sin_port определяет номер порта, который будет использоваться
для передачи данных. Порт - это просто идентификатор программы, выпол-
                                       - 44 -


WSANOTSOCK                Указанный в параметре дескриптор не является дескрипто-
                          ром сокета
WSAINPROGRESS             Выполняется блокирующая функция интерфейса Windows
                          Sockets
WSAEINTR                  Работа функции была отменена при помощи функции
                          WSACancelBlockingCall

6.4.ПАРАМЕТРЫ СОКЕТА

     Перед использованием сокета необходимо задать его параметры, жля че-
го следует подготовить структуру типа sockaddr, определение которой по-
мещено ниже

struct sockaddr
{
   u_short sa_family;
   char    sa_data[14];
};

typedef struct sockaddr      SOCKADDR;
typedef struct sockaddr     *PSOCKADDR;
typedef struct sockaddr FAR *LPSOCKADDR;

    Для работы с адресами в формате InterNet используется другой вариант
этой структуры, в котором детализируется формат поля sa_data

struct sockaddr_in
{
   short   sin_family;
   u_short sin_port;
   struct in_addr sin_addr;
   char    sin_zero[8];
};

typedef struct sockaddr_in      SOCKADDR_IN;
typedef struct sockaddr_in     *PSOCKADDR_IN;
typedef struct sockaddr_in FAR *LPSOCKADDR_IN;

     Поле sin_family определяет тип адреса. Следует записать в это поле зна-
чение AF_INET, которое соответствует типу адреса, принятому в InterNet
(структура srv_address имеет тип SOCKADDR_IN)

srv_address.sin_family = AF_INET;

    Поле sin_port определяет номер порта, который будет использоваться
для передачи данных. Порт - это просто идентификатор программы, выпол-