Rechercher une page de manuel
listen
Langue: ko
Version: 1993년 6월 23일 (fedora - 25/11/07)
Section: 2 (Appels système)
이름
listen - 소켓에서 연결들을 기다린다.사용법
#include <sys/socket.h>int listen(int s, int backlog);
설명
연결을 받아들이기 위해, 소켓은 우선 들어오는 연결들을 받아들이기 위한 socket(2)을 만들고, 들어오는 연결들에 대한 큐 제한 값을 listen으로 명시하고, 그리고 연결들을 accept(2)으로 받아들인다. listen 함수는 SOCK_STREAM 나 SOCK_SEQPACKET타입의 소켓들에만 적용된다.backlog 인자는 아직 미결인 연결들에 대한 큐의 최대 길이가 증가한 것을 정의한다. 큐에 도착한 연결 요청들이 꽉 찬다면 클라이언트는 ECONNREFUSED 를 가리키는 에러를 받거나, 만일 하위 프로토콜이 재 전송을 지원한다면, 요청은 재시도가 성공되도록 하기 위해 무시된다.
주의
TCP 소켓에서 backlog 인자의 행위는 Linux 2.2에서 바뀌었다. 현재는 요청된 연결숫자 대신에 허가가 되길 기다리는 완전히 연결된 소켓들의 길이가 지정된다. 불 완전한 소켓들에 대한 큐의 최대 길이는 tcp_max_syn_backlog sysctl을 사용하여 설정할수 있다. 동기화가 가능하다면, 논리적인 최대 길이는 없게 되며 이 sysctl 설정은 무시된다. 더 많은 정보를 위해서 tcp(7)를 참고해라.반환값
성공시, 0이 리턴된다. 에러시, -1이 리턴되며 errno 는 적당한 값으로 설정된다.에러
- EBADF
- 인자 s 가 유효한 기술자가 아니다.
- ENOTSOCK
- 인자 s 가 소켓이 아니다.
- EOPNOTSUPP
- 소켓이 listen 작동을 지원하는 타입이 아니다.
호환
단일 Unix, 4.4BSD, POSIX 1003.1g 초안 listen 시스템 함수는 4.2BSD에서 처음 나타났다.버그
만일 소켓이 AF_INET타입이고 backlog 인자가 상수 SOMAXCONN 보다 크다면(Linux 2.0 & 2.2에서 128), 그것은 예고없이 SOMAXCONN으로 짤려진다. BSD(몇몇 BSD-기반 시스템)는 backlog를 5로 제한했으므로 호환성을 염두에 둔 응용프로그램에서는 이 값에 의존하지 마라.관련 항목
accept(2), connect(2), socket(2)역자
정강훈 <skyeyes@soback.kornet.net>, 2000년 7월 2일Contenus ©2006-2023 Benjamin Poulain
Design ©2006-2023 Maxime Vantorre