我正在使用python編寫一個簡單的TCP服務器,並試圖輸入超時。我當前的代碼:向python服務器添加超時時出現非阻塞錯誤
import socket
def connect():
HOST = '' # Symbolic name meaning the local host
PORT = 5007 # Arbitrary non-privileged port
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
s.listen(1)
s.settimeout(5)
conn, addr = s.accept()
print 'Connected by', addr
return conn
conn = connect()
while 1:
data = conn.recv(1024)
if not data: break
print data
conn.close()
的問題是,當我嘗試連接我的數據= conn.recv(1024)
error: [Errno 10035] A non-blocking socket operation could not be completed immediately
代碼工作沒有超時的得到一個錯誤。
我真的推薦'SocketServer'模塊。它使我很容易切換到多線程等,它也被'SimpleHTTPServer'模塊使用。 – User
你知道爲什麼引發異常嗎? – AmitE