socket-listen

1927 단어 socket
요약:listen 함수는 주동적인 연결 세트 인터페이스를 피연결 세트 인터페이스로 바꾸어 하나의 프로세스가 다른 프로세스의 요청을 받아들여 서버 프로세스가 되도록 합니다.TCP 서버 프로그래밍에서listen 함수는 프로세스를 하나의 서버로 바꾸고 해당하는 플러그인을 수동 연결로 지정합니다.
listen 함수는 일반적으로 bind를 호출한 후 - accept를 호출하기 전에 호출됩니다. 함수의 원형은 다음과 같습니다.
#include<sys/socket.h>int listen(int sockfd, int backlog)


반환: 0 - 성공, - 1 - 실패
 
매개 변수sockfd
listen 함수에 의해 작용하는 플러그인,sockfd 이전에 socket 함수로 되돌아옵니다.socket 함수에 의해 되돌아오는 플러그인 fd는 주동적으로 연결된 플러그인입니다. 즉, 이때 시스템은 사용자가 이 플러그인에 대해connect 함수를 호출할 것이라고 가정하고 다른 프로세스와 주동적으로 연결되기를 기대합니다. 그리고 서버 프로그래밍에서 사용자는 이 플러그인이 외부의 연결 요청을 받아들일 수 있기를 희망합니다. 즉, 수동적으로 사용자가 연결하기를 기다립니다.시스템이 기본적으로 플러그인을 주동적으로 연결한다고 생각하기 때문에 사용자 프로세스가 시스템에서 listen을 호출하여 이 일을 완성한다는 것을 어떤 방식으로 알려야 한다.
매개 변수 backlog
이 매개 변수는 일부 네트워크의 세부 사항과 관련된다.프로세스가 연결 요청을 정리할 때 다른 연결 요청이 존재할 수 있습니다.TCP 연결은 하나의 과정이기 때문에 반연결 상태가 존재할 수 있으며, 때로는 동시에 연결을 시도하는 사용자가 너무 많아서 서버 프로세스가 연결 요청을 신속하게 완성하지 못할 수도 있다.만약 이 상황이 발생한다면 서버 프로세스는 내부 핵을 어떻게 처리하기를 원합니까?커널은 완성된 연결을 추적하기 위해 자신의 프로세스 공간에서 대기열을 유지합니다. 그러나 서버 프로세스가 아직 처리하거나 진행 중인 연결을 인수하지 않았습니다. 이런 대기열 커널은 임의로 커질 수 없기 때문에 크기의 상한선이 있어야 합니다.이 백로그는 커널에 이 수치를 상한선으로 사용하라고 알려 줍니다.
의심할 여지없이 서버 프로세스는 임의로 수치를 지정할 수 없으며, 핵에는 허가된 범위가 있다.이 범위는 실현과 관련된 것이다.어떤 통일은 매우 어렵다. 일반적으로 이 값은 30 이내로 작을 것이다.
 
listen을 호출하면 서버 프로세스는 외부 요청을 받아들이기 위해accept를 호출할 수 있습니다.accept에 대한 더 많은 정보는 이어서 이 시스템의 글을 주목하십시오.

좋은 웹페이지 즐겨찾기