我是python套接字的初学者。我正在编程一个TCP套接字,它从同一个客户端接收数据。问题是,我无法控制客户端,它会不断发送数据,但我想接收第一个连接,并忽略套接字在一段时间内接收到的排队连接。在这段时间之后,我的套接字再次开始接收连接。
我已经编码了这个:
socket_tcp = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
socket_tcp.bind((host, port))
socket_tcp.listen(5)
count = 0
while True:
conn, addr = socket_tcp.accept()
print('successful connection')
file = r'C:Usersfolder' + str(count) + '.json'
count += 1
with open(file, "wb") as f:
chunk = conn.recv(BUFFER_SIZE)
while chunk:
f.write(chunk)
chunk = conn.recv(BUFFER_SIZE)
conn.close()
Python的select((函数是一种可能的方法吗?
根据python socket.listen((的文档您可以将值设置为0,如下所示:
socket_tcp.listen(0)
如果您的服务器套接字已经建立了连接,那么这将丢弃所有新连接,并且当连接关闭时,您的服务器socket将再次开始接受连接。