.\" -*- coding: UTF-8 -*- .\" Copyright (c) 1983, 1991 The Regents of the University of California. .\" and Copyright (C) 2007, Michael Kerrisk .\" All rights reserved. .\" .\" %%%LICENSE_START(BSD_4_CLAUSE_UCB) .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" %%%LICENSE_END .\" .\" $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 "9 июня 2020 г." Linux "Руководство программиста Linux" .SH ИМЯ listen \- слушать соединения на сокете .SH СИНТАКСИС .nf \fB#include \fP /* смотрите ЗАМЕЧАНИЯ */ \fB#include \fP .PP \fBint listen(int \fP\fIsockfd\fP\fB, int \fP\fIbacklog\fP\fB);\fP .fi .SH ОПИСАНИЕ Вызов \fBlisten\fP() помечает сокет, указанный в \fIsockfd\fP как пассивный, то есть как сокет, который будет использоваться для приёма запросов входящих соединений с помощью \fBaccept\fP(2). .PP Аргумент \fIsockfd\fP является файловым дескриптором, который ссылается на сокет типа \fBSOCK_STREAM\fP или \fBSOCK_SEQPACKET\fP. .PP Аргумент \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\-2001, POSIX.1\-2008, 4.4BSD (вызов \fBlisten\fP() впервые появился в 4.2BSD). .SH ЗАМЕЧАНИЯ Для принятия соединений должны быть выполнены следующие шаги: .RS 4 .IP 1. 4 Создать сокет с помощью \fBsocket\fP(2). .IP 2. Привязать сокет к локальному адресу с помощью \fBbind\fP(2) для того, чтобы к нему можно было подключать другие сокеты с помощью \fBconnect\fP(2). .IP 3. Подготовиться к приёму входящий подключений и настроить размер очереди входящих подключений с помощью \fBlisten\fP(). .IP 4. Принять подключения с помощью \fBaccept\fP(2). .RE .PP В POSIX.1 не требуется включение \fI\fP, и этот заголовочный файл не требуется в Linux. Однако, для некоторых старых реализаций (BSD) требует данный файл, и в переносимых приложениях для предосторожности, вероятно, лучше его указать. .PP Поведение аргумента \fIbacklog\fP на TCP\-сокетах изменилось в Linux 2.2. Теперь вместо количества неоконченных запросов на соединение он задает размер очереди для полностью (\fIcompletely\fP) установленных соединений, ожидающих, пока процесс примет их. Максимальный размер очереди для неполных сокетов может быть задан через \fI/proc/sys/net/ipv4/tcp_max_syn_backlog\fP. Когда разрешено использование syncookies, логический максимальный размер отсутствует и эта настройка игнорируется. Подробности см. в \fBtcp\fP(7). .PP .\" 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. If the \fIbacklog\fP argument is greater than the value in \fI/proc/sys/net/core/somaxconn\fP, then it is silently truncated to that value. Since Linux 5.4, the default in this file is 4096; in earlier kernels, the default value is 128. In kernels before 2.4.25, this limit was a hard coded value, \fBSOMAXCONN\fP, with the value 128. .SH ПРИМЕРЫ См. \fBbind\fP(2). .SH "СМ. ТАКЖЕ" \fBaccept\fP(2), \fBbind\fP(2), \fBconnect\fP(2), \fBsocket\fP(2), \fBsocket\fP(7) .SH ЗАМЕЧАНИЯ Эта страница является частью проекта Linux \fIman\-pages\fP версии 5.10. Описание проекта, информацию об ошибках и последнюю версию этой страницы можно найти по адресу \%https://www.kernel.org/doc/man\-pages/. .PP .SH ПЕРЕВОД Русский перевод этой страницы руководства был сделан Artyom Kunyov , Azamat Hackimov , Dmitry Bolkhovskikh , Katrin Kutepova , Konstantin Shvaykovskiy , Yuri Kozlov и Иван Павлов . .PP Этот перевод является бесплатной документацией; прочитайте .UR https://www.gnu.org/licenses/gpl-3.0.html Стандартную общественную лицензию GNU версии 3 .UE или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ. .PP Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на .MT man-pages-ru-talks@lists.sourceforge.net .ME .