Поделиться через


CAsyncSocket::Listen

Эта функция-член вызывается с целью прослушивание входящих запросов соединений.

BOOL Listen( 
   int nConnectionBacklog = 5  
);

Параметры

  • nConnectionBacklog
    Максимальная длина, в которой очередь ожидающих подключений может расти. Допустимый диапазон - от 1 до 5.

Возвращаемое значение

Ненулевой если функция успешно; в противном случае – значение 0, а конкретный код ошибки могут быть восстановлены путем вызова GetLastError. Об ошибке применяемых к данному функции-члену.

  • WSANOTINITIALISED А успешное AfxSocketInit должно произойти перед использованием этого API.

  • Реализация Windows WSAENETDOWN sockets обнаружила, что подсистема сети.

  • WSAEADDRINUSE Попытка было сделано для прослушивания адресу.

  • WSAEINPROGRESS А операция блокировки Windows sockets выполняется.

  • WSAEINVAL Сокет не было привязано с Привязка или уже подключено.

  • WSAEISCONN Сокет уже подключено.

  • WSAEMFILE Больше нет идентификаторов файлов доступно.

  • Нет места доступно WSAENOBUFS буфера.

  • Не WSAENOTSOCK дескриптор сокета.

  • WSAEOPNOTSUPP Связанного сокета не является типом, поддерживающим операцию Listen.

Заметки

Для принятия подключения, сокет сначала создано с Создать, невыполненная работа для входящих соединений определяется с Listen, а затем соединения приняты с Принять. Listen применяется только к гнездам, поддерживающих соединения, то есть, из типа SOCK_STREAM. Этот сокет помещается в "пассивный режим, в которых проверяются входящие подключения" и в очереди ожидающих принятия процессом.

Эта функция обычно используется серверами (или любым приложением, которое необходимо принимать подключения), которые могут иметь несколько соединений одновременно запрос: если запрос подключения прибывает с очередью полной клиент получит ошибку с указанием WSAECONNREFUSED.

Listen пытается продолжить работать рационально, если нет доступных портов (дескрипторы). Он принимает соединения до тех пор, пока очередь не опорожнится. Если порты становятся доступными, то более последний вызов Listen или Принять refill очередь на current или самой последней невыполненной работе "," если возможно, и возобновить прослушивание входящих соединений.

Требования

Header: afxsock.h

См. также

Ссылки

Класс CAsyncSocket

Диаграмма иерархии

CAsyncSocket::Accept

CAsyncSocket::Connect

CAsyncSocket::Create