listen

LISTEN(2)       Ð ÑководÑÑво пÑогÑаммиÑÑа Linux       LISTEN(2)



ÐÐЯ
       listen - ÑлÑÑаÑÑ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð½Ð° ÑокеÑе

ÐÐÐÐÐ
       #include <sys/socket.h>

       int listen(int s, int backlog);

ÐÐÐСÐÐÐÐ
       ÐÐ»Ñ Ñого, ÑÑÐ¾Ð±Ñ Ð¿ÑинимаÑÑ ÑоединениÑ, ÑнаÑала
       нÑжно ÑоздаÑÑ ÑÐ¾ÐºÐµÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ socket(2), заÑем
       вÑÑазиÑÑ Ð³Ð¾ÑовноÑÑÑ Ð¿ÑинимаÑÑ Ð²ÑодÑÑие
       ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð¸ задаÑÑ ÑÐ°Ð·Ð¼ÐµÑ Ð¾ÑеÑеди Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ
       listen, а заÑем вÑзÑваÑÑ accept(2) по меÑе
       поÑÐ²Ð»ÐµÐ½Ð¸Ñ Ð½Ð¾Ð²ÑÑ Ñоединений.  СиÑÑемнÑй
       вÑзов listen пÑименим ÑолÑко к ÑокеÑам Ñипа
       SOCK_STREAM или SOCK_SEQPACKET.

       ÐаÑамеÑÑ backlog Ð·Ð°Ð´Ð°ÐµÑ Ð¼Ð°ÐºÑималÑнÑÑ Ð´Ð»Ð¸Ð½Ñ, до
       коÑоÑой Ð¼Ð¾Ð¶ÐµÑ ÑаÑÑи оÑеÑÐµÐ´Ñ Ð¾Ð¶Ð¸Ð´Ð°ÑÑиÑ
       Ñоединений.  ÐÑли пÑиÑÐ¾Ð´Ð¸Ñ Ð·Ð°Ð¿ÑÐ¾Ñ Ð½Ð°
       Ñоединение, а оÑеÑÐµÐ´Ñ Ð¿Ð¾Ð»Ð½Ð°, Ñо клиенÑ
       полÑÑÐ¸Ñ Ð¾ÑÐ¸Ð±ÐºÑ ECONNREFUSED или, еÑли
       ÑооÑвеÑÑÑвÑÑÑие пÑоÑокол поддеÑживаеÑ
       повÑоÑнÑÑ Ð¿ÐµÑедаÑÑ, запÑÐ¾Ñ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ
       игноÑиÑован, ÑÑÐ¾Ð±Ñ Ð¿Ð¾Ð¿ÑÑаÑÑÑÑ Ð¾ÑвеÑиÑÑ Ð½Ð°
       повÑоÑнÑй запÑоÑ.

ÐÐÐÐЧÐÐÐЯ
       Ðоведение паÑамеÑÑа backlog на TCP-ÑокеÑаÑ
       изменилоÑÑ Ð² Linux 2.2.  ТепеÑÑ Ð²Ð¼ÐµÑÑо
       колиÑеÑÑва неоконÑеннÑÑ Ð·Ð°Ð¿ÑоÑов на
       Ñоединение он Ð·Ð°Ð´Ð°ÐµÑ ÑÐ°Ð·Ð¼ÐµÑ Ð¾ÑеÑеди длÑ
       полноÑÑÑÑ ÑÑÑановленнÑÑ Ñоединений,
       ожидаÑÑиÑ, пока пÑоÑеÑÑ Ð¿ÑÐ¸Ð¼ÐµÑ Ð¸Ñ.
       ÐакÑималÑнÑй ÑÐ°Ð·Ð¼ÐµÑ Ð¾ÑеÑеди длÑ
       неоконÑеннÑÑ ÑокеÑов Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð·Ð°Ð´Ð°Ð½Ð¾,
       иÑполÑзÑÑ sysctl tcp_max_syn_backlog.  Ðогда ÑазÑеÑено
       иÑполÑзование syncookies, логиÑеÑкаÑ
       макÑималÑÐ½Ð°Ñ Ð´Ð»Ð¸Ð½Ð° оÑÑÑÑÑÑвÑÐµÑ Ð¸ наÑÑÑойка
       ÑÑого sysctl игноÑиÑÑеÑÑÑ.  См.  tcp(7) за
       далÑнейÑей инÑоÑмаÑией.


ÐÐÐÐÐ ÐЩÐÐÐÐÐ ÐÐÐЧÐÐÐÐ
       Ð ÑлÑÑае ÑÑпеÑа возвÑаÑаеÑÑÑ Ð½Ð¾Ð»Ñ.  ÐÑи оÑибке
       возвÑаÑаеÑÑÑ -1, а errno ÑÑÑанавливаеÑÑÑ Ð´Ð¾Ð»Ð¶Ð½Ñм
       обÑазом.


ÐШÐÐÐÐ
       EADDRINUSE
               ÐÑÑгой ÑÐ¾ÐºÐµÑ Ñже ÑлÑÑÐ°ÐµÑ Ð½Ð° ÑÑом же поÑÑÑ.

       EBADF   ÐÑгÑÐ¼ÐµÐ½Ñ s не ÑвлÑеÑÑÑ Ð¿ÑавилÑнÑм
               деÑкÑипÑоÑом.

       ENOTSOCK
               ÐÑгÑÐ¼ÐµÐ½Ñ s не ÑвлÑеÑÑÑ ÑокеÑом.

       EOPNOTSUPP
               Тип ÑокеÑа не поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ð¾Ð¿ÐµÑаÑиÑ
               listen.

СÐÐТÐÐТСТÐÐРСТÐÐÐÐРТÐÐ
       Single Unix, 4.4BSD, ÑеÑновик POSIX 1003.1g. ÐÑзов listen
       впеÑвÑе поÑвилÑÑ Ð² 4.2BSD.

ÐШÐÐÐÐ Ð ÐÐÐÐÐÐЦÐÐ
       ÐÑли ÑÐ¾ÐºÐµÑ Ð¸Ð¼ÐµÐµÑ Ñип AF_INET, а аÑгÑÐ¼ÐµÐ½Ñ backlog
       болÑÑе, Ñем конÑÑанÑа SOMAXCONN (128 в Linux 2.0 & 2.2),
       Ñо он незамеÑно обÑезаеÑÑÑ Ð´Ð¾ SOMAXCONN.  Ðе
       полагайÑеÑÑ Ð½Ð° ÑÑо знаÑение в поÑÑабелÑнÑÑ
       пÑиложениÑÑ, поÑÐ¾Ð¼Ñ ÑÑо BSD и некоÑоÑÑе еÑ
       поÑомки огÑаниÑиваÑÑ ÑÐ°Ð·Ð¼ÐµÑ Ð¾ÑеÑеди до 5.

СÐÐТРРТÐÐÐÐ
       accept(2), connect(2), socket(2)

ÐÐÐ ÐÐÐÐ
       Copyright (C) Alexey Mahotkin <alexm@hsys.msk.ru> 1999, ÐикÑоÑ
       ÐиÑлобоков <corochoone@perm.ru> 2003



Ð ÑководÑÑво по BSD      1993-07-23                         LISTEN(2)