listen()

Прослушивать соединения сокета

Прототип:

#include <sys/socket.h>
int listen( int s,
int backlog );

Аргументы:

s
Дескриптор сокета, который требуется прослушать. Создать сокет можно при помощи socket().
backlog
Максимальный размер очереди ожидающих соединений.

Библиотека:

libsocket

Описание:

Функция listen() прослушивает соединения сокета и устанавливает сокет в состояние LISTEN. Для принятия соединений необходимо:

  1. Создать сокет при помощи socket().

  2. Указать о намерении принимать входящие соединения и указать максимальный размер очереди для них, вызвав listen().

  3. Вызвать accept() для принятия соединений.

Если запрос на соединение поступает с заполненной очередью, клиент может получить сообщение об ошибке с указанием ECONNREFUSED. Однако, если базовый протокол поддерживает повторную передачу, запрос может быть проигнорирован, поэтому повторные попытки могут быть успешными.


Note: Вызов listen() применим только к сокетам типа SOCK_STREAM.

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

0
Успешное завершение.
-1
Возникла ошибка. Код ошибки записан в errno.

Коды ошибок:

EBADF
Некорректный дескриптор s.
EOPNOTSUPP
Данный сокет не поддерживает операцию listen().

Классификация:

POSIX 1003.1

Точка остановки потока
Да
Обработчик прерываний
Нет
Обработчик сигналов
Нет
В потоке
Да

Тематические ссылки:

accept(), connect(), socket()




Предыдущий раздел: Описание API сетевой библиотеки