无法为 python 3 recv 设置超时



我正在尝试在下面的代码上超时。但它只是挂在recv,永远不会超时。有人可以指出我做错了什么吗?我看过了,似乎找不到太多。

import socket
host = "localhost"
port = 8888
# create socket object
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# give object the ip and port to listen on
server_address = (host, port)
print('starting up on %s port %s' % server_address)
sock.bind(server_address)
# how many listeners
sock.listen(0)
# sets the time out
sock.settimeout(10)
while True:
    print('waiting for a connection')
    try:
        #this waits for a connection from the sending side.
        connection, client_address = sock.accept()
        print('connection from', client_address)
        start = False
        message = ""
        while client_address != "":
            #this listens and waits for data to be sent and sets it to the data variable
            data = connection.recv(32000).decode()

您在侦听套接字上设置了接受超时,而不是在接收套接字上设置了读取超时。

相关内容

  • 没有找到相关文章