Skip to content

C:listen

소켓(:12)의 연결 대기열(:12)을 만든다.

Syntax

#include <sys/socket.h>
int listen(int s, int backlog);

Remarks

서버(:12)측 프로그램은 socket(2)함수를 이용해서 클라이언트(:12)의 연결을 받아들일 듣기소켓을 만들게 된다. 클라이언트의 연결은 듣기소켓(:12)을 통해서 이루어지는데 클라이언트는 connect(2)를 호출해서 서버에 연결을 시도하고, 3번:::악수기법(:12)이 성공하면 서버와 완전한 연결이 만들어 진다.

만들어진 연결은 queue(:12)에 들어가게 되고 서버측에서 accept(2)를 호출하면 비로서 서버는 연결소켓을 만들고 만들어진 연결소켓(:12)을 이용해서 클라이언트와 통신하게 된다.

listen(2) 시스템호출(:12)은 SOCK_STREAM과 SOCK_SEQPACKET에만 사용된다.

a는 socket(2)에 의해서 만들어진 듣기 소켓이다. backlog는 연결이 대기할 수 있는 큐의 갯수이다. 만약 backlog에 연결이 모두 찬 상태에서 새로운 연결을 시도한다면, 클라이언트는 ECONNREFUSED 에러를 받게될 것이다. 만약 재전송을 지원하는 프로토콜을 사용한다면 에러를 무시하고 성공할 때까지 재시도를 하게 된다.

See also

Favorite site

References


  1. Joinc_-Linux_man-_listen.pdf