无法为python 3 recv设置超时

时间:2017-10-31 15:24:03

标签: python-3.x sockets timeout 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()

1 个答案:

答案 0 :(得分:1)

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