Python 如何使套接字服务器只接受一个连接?
我使用Python编写了一个TCP服务器。我要服务器 仅接受客户端连接 我使用这个函数 但是服务器仍然可以接受多个连接。来自: 如果指定了backlog,则必须至少为0(如果较低,则设置为0);它指定系统在拒绝新连接之前允许的未接受连接数 因此,如果您使用Python 如何使套接字服务器只接受一个连接?,python,sockets,network-programming,Python,Sockets,Network Programming,我使用Python编写了一个TCP服务器。我要服务器 仅接受客户端连接 我使用这个函数 但是服务器仍然可以接受多个连接。来自: 如果指定了backlog,则必须至少为0(如果较低,则设置为0);它指定系统在拒绝新连接之前允许的未接受连接数 因此,如果您使用listen(1)您允许一个不可接受的连接。如果希望不允许出现不可接受的连接,则必须从以下位置使用listen(0): 如果指定了backlog,则必须至少为0(如果较低,则设置为0);它指定系统在拒绝新连接之前允许的未接受连接数 因此,如果您
listen(1)
您允许一个不可接受的连接。如果希望不允许出现不可接受的连接,则必须从以下位置使用listen(0)
:
如果指定了backlog,则必须至少为0(如果较低,则设置为0);它指定系统在拒绝新连接之前允许的未接受连接数
因此,如果您使用
listen(1)
您允许一个不可接受的连接。如果希望不允许出现不可接受的连接,则必须使用listen(0)
如果只需要一个连接,请不要在-connections中使用socket.accept()的循环
演示代码:
如果您只需要一个连接,请不要对socket.accept()
in-connections使用循环
演示代码:
listen(1)
#!/usr/bin/python
import time
import socket
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM, socket.IPPROTO_TCP)
server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
server_addr = ('127.0.0.1', 8080)
server.bind(server_addr)
server.listen(1)
print("listening on {}".format(server_addr))
client, client_addr = server.accept()
for i in range(10):
client.send("num: {}\n".format(i))
time.sleep(1)
raw_input('')