ВУЗ:
Составители:
Рубрика:
- 49 -
int
listen(SOCKET sock, int backlog);
Через параметр sock функции необходимо передать дескриптор сокета,
который будет использован для создания сокета, параметр backlog задает
максимальный размер очереди для ожидания соединения (можно указывать
значения от 1 до 5). Очередь содержит запросы на установку соединений для
каждой пары значений (IP-адрес, порт). Ниже приведен список возможных
кодов ошибок для функции listen
Код ошибки Описание
WSANOTINITIALISED
Перед использованием функции необходимо вызвать функ-
цию WSAStartup
WSAENETDOWN
Сбой в сети
WSAEADDRINUSE
Указанный адрес уже используется
WSAEINPROGRESS Выполняется блокирующая функция интерфейса Windows
Sockets
WSAEINVAL
Сокет еще не был привязан к адресу или уже находится в
подключенном состоянии
WSAEISCONN
Сокет уже находится в подключенном состоянии
WSAEMFILE
Нет доступных дескрипторов
WSAENOBUFS
Недостаток памяти для размещения буфера
WSAENOTSOCK
Указанный в параметре дескриптор не является дескрипто-
ром сокета
WSAEOPNOTSUPP Функция listen не может работать с сокетом указанного типа
Ниже приведен пример вызова функции listen
if (listen(srv_socket, 1) == SOCKET_ERROR)
{
closesocket(srv_socket);
MessageBox(NULL, "Ошибка функции Listen", "Error", MB_OK);
return;
}
Далее программа должна ожидать соединения, это может быть выполне-
но двумя различными способами.
Первый способ заключается в циклическом вызове функции accept до
тех пор, пока не будет установлено соединение; затем можно приступить к
обмену данными.
Функция accept имеет следующий прототип
SOCKET
accept(SOCKET sock, struct sockaddr FAR *addr, int FAR *addrlen);
- 49 -
int
listen(SOCKET sock, int backlog);
Через параметр sock функции необходимо передать дескриптор сокета,
который будет использован для создания сокета, параметр backlog задает
максимальный размер очереди для ожидания соединения (можно указывать
значения от 1 до 5). Очередь содержит запросы на установку соединений для
каждой пары значений (IP-адрес, порт). Ниже приведен список возможных
кодов ошибок для функции listen
Код ошибки Описание
WSANOTINITIALISED Перед использованием функции необходимо вызвать функ-
цию WSAStartup
WSAENETDOWN Сбой в сети
WSAEADDRINUSE Указанный адрес уже используется
WSAEINPROGRESS Выполняется блокирующая функция интерфейса Windows
Sockets
WSAEINVAL Сокет еще не был привязан к адресу или уже находится в
подключенном состоянии
WSAEISCONN Сокет уже находится в подключенном состоянии
WSAEMFILE Нет доступных дескрипторов
WSAENOBUFS Недостаток памяти для размещения буфера
WSAENOTSOCK Указанный в параметре дескриптор не является дескрипто-
ром сокета
WSAEOPNOTSUPP Функция listen не может работать с сокетом указанного типа
Ниже приведен пример вызова функции listen
if (listen(srv_socket, 1) == SOCKET_ERROR)
{
closesocket(srv_socket);
MessageBox(NULL, "Ошибка функции Listen", "Error", MB_OK);
return;
}
Далее программа должна ожидать соединения, это может быть выполне-
но двумя различными способами.
Первый способ заключается в циклическом вызове функции accept до
тех пор, пока не будет установлено соединение; затем можно приступить к
обмену данными.
Функция accept имеет следующий прототип
SOCKET
accept(SOCKET sock, struct sockaddr FAR *addr, int FAR *addrlen);
Страницы
- « первая
- ‹ предыдущая
- …
- 47
- 48
- 49
- 50
- 51
- …
- следующая ›
- последняя »
