Rumah > Soal Jawab > teks badan
服务端
# 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个连接应该报错的
大家讲道理2017-04-18 09:42:49
Saiz baris gilir sambungan tcp, iaitu bilangan sambungan
Butiran komunikasi jabat tangan dan soket TCP
伊谢尔伦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
怪我咯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.