문제

소켓 프로그래밍에 대한 예제를 찾으려고 노력 했고이 스크립트에 나왔습니다.http://stacklessexamples.googlecode.com/svn/trunk/examples/networking/mud.py

이 스크립트를 읽을 때이 줄을 찾았습니다 : Listensocket.listen (5)

내가 이해할 수 있듯이 - 버퍼에서 5 바이트를 읽은 다음 그것으로 물건을 수행합니다 ...

그러나 다른 쪽 끝에서 5 바이트 이상이 전송되면 어떻게됩니까?

해당 스크립트의 다른 장소에서는 4 개의 명령에 대한 입력을 확인하고 문자열에 r n이 있는지 확인합니다. "look" + r n과 같은 명령을 5 바이트 이상으로 구성하지 않습니까?

앨런

도움이 되었습니까?

해결책

다음은 일반적으로 소켓에 적용 할 수 있지만 Python의 소켓 사용에 대한 구체적인 질문에 답변하는 데 도움이됩니다.

socket.listen ()은 a 섬기는 사람 들어오는 연결 요청을 듣기위한 소켓.

듣기 위해 전달 된 매개 변수를 백 로그 또한 소켓이 호출을 받기 시작할 때까지 소켓이 수락하고 보류중인 버퍼를 넣어야하는지 ()를 의미합니다. 이는 Listen () 호출 된 시간과 accept ()에 일치하는 호출을 마친 시간 사이에 서버 소켓에 연결하기를 기다리는 연결에 적용됩니다.

따라서 예에서 백 로그를 5 개의 연결로 설정합니다.

메모.. 백 로그를 5 개의 연결로 설정하면 다음 연결 (6, 7 등)이 삭제되고 연결 소켓은 오류 연결 메시지 ( "호스트가 연결을 적극적으로 거부"한 메시지와 같은 것)

다른 팁

코드를 이해하는 데 도움이 될 수 있습니다. http://www.amk.ca/python/howto/sockets/

논쟁 거리 5 에게 listenSocket.listen 읽거나 버퍼링 할 바이트의 수가 아니라 backlog:

socket.listen(backlog)

소켓에 연결된 연결을 들어보십시오. 백 로그 인수는 최대 대기열 연결 수를 지정하며 최소 1이어야합니다. 최대 값은 시스템 의존적입니다 (일반적으로 5).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top