#include <sys/socket.h>
int listen(int s, int backlog);
1.2. 설명
서버(: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 에러를 받게될 것이다. 만약 재전송을 지원하는
프로토콜을 사용한다면 에러를 무시하고 성공할 때까지 재시도를 하게 된다.
1장. listen(2)
소켓(:12)의 연결 대기열(:12)을 만든다.
1.1. 사용법
1.2. 설명
서버(: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 에러를 받게될 것이다. 만약 재전송을 지원하는 프로토콜을 사용한다면 에러를 무시하고 성공할 때까지 재시도를 하게 된다.
1.3. 반환값
성공하면 0을 리턴하고 실패했을 경우 -1을 리턴하고 errno 를 설정한다.
1.4. 에러
다른 소켓이 동일한 포트(:12)를 사용하고 있다.
s가 잘못된 소켓지정자이다.
소켓이 listen을 지원하지 않는다.
s가 소켓이 아니다.
1.5. 예제
1.6. 관련문헌
Socket Layer
Recent Posts
Archive Posts
Tags