我正试图在Python中构建一个简单的套接字服务器:
import socket
import threading
import time
def handle(conn_addr):
print("Someone Connected")
time.sleep(4)
print("And now I die")
host = ''
port = 5000
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
s.bind((host,port))
except socket.error as e:
print(str(e))
s.listen(2)
while True:
threading.Thread(handle(s.accept())).start()
print("Should never be reached")
套接字服务器应该能够同时接受多个客户端。我尝试通过从我的 shell 中的多个选项卡调用 telnet localhost 5000 来测试其功能,但我得到的模式是
Someone Connected
And now I die
Someone Connected
And now I die
而不是
Someone Connected
Someone Connected
Someone Connected
我连续在4秒内调用telnet命令,因此应该连续返回2个连接消息,但是只有在前一个socket断开连接后才会返回消息。为什么会这样,我该如何解决?