cari

Rumah  >  Soal Jawab  >  teks badan

python中socket在bind之后listen,比如listen(5)这个5,是对什么的限制

服务端

# 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个连接应该报错的

高洛峰高洛峰2804 hari yang lalu883

membalas semua(3)saya akan balas

  • 大家讲道理

    大家讲道理2017-04-18 09:42:49

    Saiz baris gilir sambungan tcp, iaitu bilangan sambungan

    Butiran komunikasi jabat tangan dan soket TCP

    balas
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-18 09:42:49

    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

    balas
    0
  • 怪我咯

    怪我咯2017-04-18 09:42:49

    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.

    balas
    0
  • Batalbalas