python中socket在bind之后listen,比如listen(5)这个5,是对什么的限制
高洛峰
高洛峰 2017-04-18 09:40:49
0
3
851

服务端

# coding:utf-8   
# server.py                                                               
import socket

sock_server = socket.socket()
sock_server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
sock_server.bind(("127.0.0.1",1234))
sock_server.listen(3)
print("server start ...")
while True:
    tmp = sock_server.accept()
    print(tmp,"\n\n") 

客户端

# coding:utf-8                                                                  
import socket


def make_socks(sock_num):
    socks = []
    for i in range(sock_num):
        tmp_sock = socket.socket()
        tmp_sock.connect(("127.0.0.1",1234))
        socks.append(tmp_sock)
    

    return socks

if __name__ == "__main__":
    make_socks(5)

如上例代码中,有listen(3),这个3是指什么,是指,这个socket只能与3个socket建立链接吗,为什么我用上面的代码可以创建大于3个的tcp连接却没报错,理论上大于3个连接应该报错的

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

모든 응답(3)
大家讲道理

tcp 연결 큐의 크기, 즉 연결 수

TCP 핸드셰이크 및 소켓 통신 세부정보

伊谢尔伦

Python은 연구되지 않았지만 c에서는 서버 측에서 연결을 설정할 수 있는 클라이언트의 큐 길이를 의미하며, 책에서 서버가 시스템 호출 수락을 기다리는 두 번의 핸드셰이크를 경험했음을 나타냅니다. Linux 고성능 서버 프로그래밍 현재 백로그는 커널에 대한 권장 값일 뿐이라고 언급했습니다. 실제로는 약간 더 클 수 있습니다. 제 기억이 맞다면 이렇게 설명하겠습니다

刘奇

으아악

전달된 값은 운영 체제가 연결을 거부하기 전에 일시 중단할 수 있는 최대 연결 수를 지정합니다. 이 값은 1 이상이어야 하며 대부분의 응용 프로그램에서는 5가 적합합니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!