如何创建一个简单的Python echo服务器,它记住客户机,而不为每个请求创建新的套接字?必须能够支持并发访问。我希望能够使用此客户端或类似客户端连接一次并连续发送和接收数据:
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
host = raw_input("Server hostname or ip? ")
port = input("Server port? ")
sock.connect((host,port))
while True:
data = raw_input("message: ")
sock.send(data)
print "response: ", sock.recv(1024)
也就是说,服务器在端口50000上运行,使用上面的客户机,我希望能够做到这一点:
me@mine:~$ client.py
Server hostname or ip? localhost
Server Port? 50000
message: testa
response: testa
message: testb
response: testb
message: testc
response: testc
您可以为每个客户机使用一个线程来避免阻塞
client.recv()
,然后使用主线程来监听新客户机。当一个连接时,主线程创建一个新线程,它只监听新客户机,并在60秒不说话时结束。客户端在60秒不活动后超时,必须重新连接。请参见函数
ThreadedServer.listen()
中的client.settimeout(60)
行相关问题 更多 >
编程相关推荐