Python2.7server.socket超时问题
Python 2.7 server.socket timeout question
我有一些 python 代码有时会在连接打开但没有数据发送时阻塞。我明白为什么它在等待 64 位或更少的数据。它将永远等待。如果没有收到数据,是否有一种简单的方法可以使连接超时。任何帮助或建议将不胜感激。
serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
serversocket.bind(('', port))
serversocket.listen(5) # become a server socket, maximum 5 connections
while 1:
try:
while 1:
# print "Waiting for oonnection..."
connection, address = serversocket.accept()
buf = connection.recv(64)
您可以使用 socket.settimeout(value)
,其中 value
是秒数。
serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
serversocket.bind(('', port))
serversocket.listen(5) # become a server socket, maximum 5 connections
while 1:
try:
while 1:
# print "Waiting for oonnection..."
connection, address = serversocket.accept()
connection.settimeout(5) # Set 5 seconds timeout to receive 64 bytes of data
buf = connection.recv(64)
except socket.timeout:
print("Timeout happened -- goting back to accept another connection")
我有一些 python 代码有时会在连接打开但没有数据发送时阻塞。我明白为什么它在等待 64 位或更少的数据。它将永远等待。如果没有收到数据,是否有一种简单的方法可以使连接超时。任何帮助或建议将不胜感激。
serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
serversocket.bind(('', port))
serversocket.listen(5) # become a server socket, maximum 5 connections
while 1:
try:
while 1:
# print "Waiting for oonnection..."
connection, address = serversocket.accept()
buf = connection.recv(64)
您可以使用 socket.settimeout(value)
,其中 value
是秒数。
serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
serversocket.bind(('', port))
serversocket.listen(5) # become a server socket, maximum 5 connections
while 1:
try:
while 1:
# print "Waiting for oonnection..."
connection, address = serversocket.accept()
connection.settimeout(5) # Set 5 seconds timeout to receive 64 bytes of data
buf = connection.recv(64)
except socket.timeout:
print("Timeout happened -- goting back to accept another connection")