ВУЗ:
Составители:
Рубрика:
- 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
- …
- следующая ›
- последняя »