listen

listen(2)                      2007-10-27-16:31                      listen(2)



Ðазва
       listen - пÑоÑлÑÑовÑÑ ÑполÑÑÐµÐ½Ð½Ñ Ð½Ð° ÑокеÑÑ


СинÑакÑиÑ
       #include <sys/socket.h>


       Ñnt listen(Ñnt s, int backlog);


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

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


ÐÑимÑÑки
       ÐоÑинаÑÑи з веÑÑÑÑ LÑnux 2.2, поведÑнка паÑамеÑÑа
       backlog на TCP-ÑокеÑÐ°Ñ Ð¿Ð¾Ð¼ÑнÑлаÑÑ. Ð¢ÐµÐ¿ÐµÑ Ð·Ð°Ð¼ÑÑÑÑ
       ÑиÑла незакÑнÑÐµÐ½Ð¸Ñ Ð·Ð°Ð¿Ð¸ÑÑв вÑн визнаÑаÑ
       ÑеÑÐ³Ñ Ð¿Ð¾Ð²Ð½ÑÑÑÑ Ð²ÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÑокеÑÑв, оÑÑкÑÑÑиÑ,
       доки пÑоÑÐµÑ Ð¿Ñийме ÑÑ. ÐакÑималÑна довжина
       ÑеÑги ÑокеÑÑв, ÑаÑÑково вÑÑановлениÑ, може
       бÑÑи задана паÑамеÑÑом tcp_max_syn_backlog за
       Ð´Ð¾Ð¿Ð¾Ð¼Ð¾Ð³Ð¾Ñ sysctl. ЯкÑо дозволене
       викоÑиÑÑÐ°Ð½Ð½Ñ syncookies, логÑÑна макÑималÑна
       довжина не викоÑиÑÑовÑÑÑÑÑÑ Ñ Ñей
       sysctl-паÑамеÑÑ ÑгноÑÑÑÑÑÑÑ. ÐÐ»Ñ Ð´Ð¾ÐºÐ»Ð°Ð´Ð½ÑÑоÑ
       ÑнÑоÑмаÑÑÑ Ð´Ð¸Ð²ÑÑÑÑÑ tcp(7).


ÐовеÑнене знаÑеннÑ
       УÑпÑÑне завеÑÑÐµÐ½Ð½Ñ Ð²Ð¸ÐºÐ»Ð¸ÐºÑ Ð¿Ð¾Ð²ÐµÑне нÑлÑ. У
       Ð²Ð¸Ð¿Ð°Ð´ÐºÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸ повеÑÑаÑÑÑÑÑ -1, а змÑннÑй
       errno пÑиÑвоÑÑÑÑÑÑ Ð½Ð¾Ð¼ÐµÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸.


Ðоди помилок
       EADDRÐNUSE
               ÐнÑий ÑÐ¾ÐºÐµÑ Ñже ÑлÑÑÐ°Ñ Ð½Ð° ÑÑÐ¾Ð¼Ñ Ð¿Ð¾ÑÑÑ.


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


       ENOTSOCK
               ÐаÑамеÑÑ s не Ñ ÑокеÑом.


       EOPNOTSUPP
               Цей Ñип ÑокеÑÑ Ð½Ðµ пÑдÑÑимÑÑ Ð¾Ð¿ÐµÑаÑÑÑ listen.


ÐÑдповÑднÑÑÑÑ ÑÑандаÑÑам
       SÑngle Unix, 4.4BSD, ÑеÑнеÑка POSÐX 1003.1g. УпеÑÑе
       ÑиÑÑемний виклик listen з'ÑвивÑÑ Ñ 4.2BSD.


Ðомилки
       ЯкÑо ÑÐ¾ÐºÐµÑ Ñ AF_ÐNET ÑипÑ, а аÑгÑÐ¼ÐµÐ½Ñ backlog Ñ
       бÑлÑÑим нÑж конÑÑанÑа SOMAXCONN (128 Ñ LÑnux 2.0 Ñ 2.2),
       Ñо вÑн ÑÑинаÑÑÑÑÑ Ð´Ð¾ SOMAXCONN . Ðе покладайÑеÑÑ Ð½Ð°
       Ñе знаÑÐµÐ½Ð½Ñ Ð¿Ñи ÑÑвоÑÐµÐ½Ð½Ñ ÑÑмÑÑÐ½Ð¸Ñ Ð· ÑнÑими
       ÑиÑÑемами додаÑкÑв, ÑÐ¾Ð¼Ñ Ñо BSD (Ñ Ð´ÐµÑÐºÑ Ð¿Ð¾ÑÑднÑ
       ÑиÑÑеми) обмежÑÑ ÑозмÑÑ ÑеÑги до 5.


ÐивÑÑÑÑÑ Ñакож
       accept(2), connect(2), socket(2)




© 2005-2007 DLOU, GNU FDL     2007-10-27-16:31                      listen(2)