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

服务端

# 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教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

membalas semua(3)
大家讲道理

Saiz baris gilir sambungan tcp, iaitu bilangan sambungan

Butiran komunikasi jabat tangan dan soket TCP

伊谢尔伦

Python belum dipelajari, tetapi dalam c, ia merujuk kepada panjang baris gilir pelanggan yang boleh mewujudkan sambungan pada bahagian pelayan, menunjukkan bahawa pelayan telah mengalami dua jabat tangan menunggu panggilan sistem terima, dalam buku Pengaturcaraan Pelayan Berprestasi Tinggi Linux Menyebut bahawa tunggakan semasa hanyalah nilai yang disyorkan untuk kernel Malah, ia boleh menjadi lebih besar sedikit. Jika saya ingat dengan betul, ini adalah bagaimana ia digambarkan

刘奇
sock_server.listen(5)  # 开始监听TCP传入连接

Nilai yang dihantar dalam menentukan bilangan maksimum sambungan yang boleh digantung oleh sistem pengendalian sebelum menolak sambungan. Nilai ini hendaklah sekurang-kurangnya 1, dan 5 boleh digunakan untuk kebanyakan aplikasi.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan