我有简单服务器脚本。我对此脚本的目标是:
import socket
server_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
server_socket.bind(("",5000))
server_socket.listen(5)
print "Awaiting Client connection"
client_socket, address =server_socket.accept()
print "Connection established.. with ",address
while True:
data=client_socket.recv(512)
if not data:
client_socket.close()
print "Client disconnected, Awaiting new connections..."
client_socket, address =server_socket.accept()
print "Connection from ",address
else:
print "RECIEVED:",data
我的问题是即使我在一台电脑上测试它时脚本似乎正在工作,我注意到它从客户端收到连接后,line no 7
print "Connection established.. with ",address
python shell窗口似乎没有响应(如果我尝试移动shell窗口,则变为无响应),直到客户端发送任何消息。
据我所知,如果没有来自客户端的传入消息,client_socket.recv(512)
将只等待来自客户端的数据。
但为什么它变得反应迟钝? 为了使事情更清楚,
- 脚本运行正常(它接收数据并从屏幕打印出来并等待客户端断开连接时的新连接)
- 控制台窗口中的光标停止闪烁
- 当我尝试移动控制台窗口时,它变得没有响应,窗口会给我一条消息“此程序已停止响应”