.\" -*- coding: UTF-8 -*- .\" Copyright (c) 1983, 1991 The Regents of the University of California. .\" and Copyright (C) 2007, Michael Kerrisk .\" All rights reserved. .\" .\" SPDX-License-Identifier: BSD-4-Clause-UC .\" .\" $Id: listen.2,v 1.6 1999/05/18 14:10:32 freitag Exp $ .\" .\" Modified Fri Jul 23 22:07:54 1993 by Rik Faith .\" Modified 950727 by aeb, following a suggestion by Urs Thuermann .\" .\" Modified Tue Oct 22 08:11:14 EDT 1996 by Eric S. Raymond .\" Modified 1998 by Andi Kleen .\" Modified 11 May 2001 by Sam Varshavchik .\" .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH listen 2 "23 июля 2024 г." "Linux man\-pages 6.12" .SH НАИМЕНОВАНИЕ listen \- слушать соединения на сокете .SH БИБЛИОТЕКА Standard C library (\fIlibc\fP,\ \fI\-lc\fP) .SH ОБЗОР .nf \fB#include \fP .P \fBint listen(int \fP\fIsockfd\fP\fB, int \fP\fIbacklog\fP\fB);\fP .fi .SH ОПИСАНИЕ Вызов \fBlisten\fP() помечает сокет, указанный в \fIsockfd\fP как пассивный, то есть как сокет, который будет использоваться для приёма запросов входящих соединений с помощью \fBaccept\fP(2). .P Аргумент \fIsockfd\fP является файловым дескриптором, который ссылается на сокет типа \fBSOCK_STREAM\fP или \fBSOCK_SEQPACKET\fP. .P Аргумент \fIbacklog\fP задает максимальный размер, до которого может расти очередь ожидающих соединений у \fIsockfd\fP. Если приходит запрос на соединение, а очередь полна, то клиент может получить ошибку с указание \fBECONNREFUSED\fP или, если низлежащий протокол поддерживает повторную передачу, запрос может быть игнорирован, чтобы попытаться соединиться позднее. .SH "ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ" При успешном выполнении возвращается 0. При ошибке возвращается \-1, а в \fIerrno\fP содержится код ошибки. .SH ОШИБКИ .TP \fBEADDRINUSE\fP Другой сокет уже слушает на этом же порту. .TP \fBEADDRINUSE\fP (доменные сокеты Интернета) Сокет, указанный \fIsockfd\fP, ранее не был привязан к адресу и при попытке привязать его к эфемеридному порту, было определено, что все номера в диапазоне эфемеридных портов уже используются. Смотрите обсуждение \fI/proc/sys/net/ipv4/ip_local_port_range\fP в \fBip\fP(7). .TP \fBEBADF\fP Аргумент \fIsockfd\fP не является допустимым файловым дескриптором. .TP \fBENOTSOCK\fP Файловый дескриптор \fIsockfd\fP указывает не на каталог. .TP \fBEOPNOTSUPP\fP Тип сокета не поддерживает операцию \fBlisten\fP(). .SH СТАНДАРТЫ POSIX.1\-2008. .SH ИСТОРИЯ POSIX.1\-2001, 4.4BSD (впервые появились в 4.2BSD). .SH ПРИМЕЧАНИЯ Для принятия соединений должны быть выполнены следующие шаги: .RS 4 .IP (1) 5 Создать сокет с помощью \fBsocket\fP(2). .IP (2) Привязать сокет к локальному адресу с помощью \fBbind\fP(2) для того, чтобы к нему можно было подключать другие сокеты с помощью \fBconnect\fP(2). .IP (3) Подготовиться к приёму входящий подключений и настроить размер очереди входящих подключений с помощью \fBlisten\fP(). .IP (4) Принять подключения с помощью \fBaccept\fP(2). .RE .P Поведение аргумента \fIbacklog\fP на TCP\-сокетах изменилось в Linux 2.2. Теперь вместо количества неоконченных запросов на соединение он задает размер очереди для полностью (\fIcompletely\fP) установленных соединений, ожидающих, пока процесс примет их. Максимальный размер очереди для неполных сокетов может быть задан через \fI/proc/sys/net/ipv4/tcp_max_syn_backlog\fP. Когда разрешено использование syncookies, логический максимальный размер отсутствует и эта настройка игнорируется. Подробности см. в \fBtcp\fP(7). .P .\" The following is now rather historic information (MTK, Jun 05) .\" Don't rely on this value in portable applications since BSD .\" (and some BSD-derived systems) limit the backlog to 5. Если аргумент \fIbacklog\fP больше значения в \fI/proc/sys/net/core/somaxconn\fP, то он молча ограничивается этим значением. Начиная с Linux 5.4, значение по умолчанию в этом файле равно 4096; в более ранних ядрах значение по умолчанию равно 128. До Linux 2.4.25 это ограничение было жестко закодированным значением \fBSOMAXCONN\fP со значением 128. .SH ПРИМЕРЫ См. \fBbind\fP(2). .SH "СМОТРИТЕ ТАКЖЕ" \fBaccept\fP(2), \fBbind\fP(2), \fBconnect\fP(2), \fBsocket\fP(2), \fBsocket\fP(7) .PP .SH ПЕРЕВОД Русский перевод этой страницы руководства разработал(и) Artyom Kunyov , Azamat Hackimov , Dmitry Bolkhovskikh , Katrin Kutepova , Konstantin Shvaykovskiy , Yuri Kozlov , Иван Павлов и Kirill Rekhov . .PP Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, .UR https://www.gnu.org/licenses/gpl-3.0.html .UE версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ. .PP Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу .MT списка рассылки русских переводчиков .ME .