繁体   English   中英

控制 python 套接字的排队连接

[英]Control of queued connections of a python socket

我是 python sockets 的初学者。 我正在编写一个从同一客户端接收数据的 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:\Users\folder' + 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() function 是一种可能的方式吗?

根据 python socket socket.listen()的文档,您可以将值设置为 0,如下所示:

socket_tcp.listen(0) 

如果您的服务器套接字已经建立了连接,这将丢弃所有新连接,并且当连接关闭时,您的服务器套接字将再次开始接受连接。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM