Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使套接字服务器只接受一个连接?_Python_Sockets_Network Programming - Fatal编程技术网

Python 如何使套接字服务器只接受一个连接?

Python 如何使套接字服务器只接受一个连接?,python,sockets,network-programming,Python,Sockets,Network Programming,我使用Python编写了一个TCP服务器。我要服务器 仅接受客户端连接 我使用这个函数 但是服务器仍然可以接受多个连接。来自: 如果指定了backlog,则必须至少为0(如果较低,则设置为0);它指定系统在拒绝新连接之前允许的未接受连接数 因此,如果您使用listen(1)您允许一个不可接受的连接。如果希望不允许出现不可接受的连接,则必须从以下位置使用listen(0): 如果指定了backlog,则必须至少为0(如果较低,则设置为0);它指定系统在拒绝新连接之前允许的未接受连接数 因此,如果您

我使用Python编写了一个TCP服务器。我要服务器 仅接受客户端连接

我使用这个函数

但是服务器仍然可以接受多个连接。

来自:

如果指定了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('')