我最近制作了一个python套接字服务器,它监听端口9777服务器假设接受连接,一旦它发生,它将允许你向客户端发送信息。然后客户端将打印出它收到的任何内容。但是,我发现在发送一些数据后服务器会挂起,直到我重新初始化一个新连接。这是否有原因,如果是这样,我怎样才能防止它发生
服务器的代码是:
import socket
import sys
host='0.0.0.0'
port=9777
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.bind((host,port))
s.listen(10)
c,a=s.accept()
while True:
command=raw_input('[input>] ')
if 'data' in command:
c.send('continue')
data=c.recv(1024)
print data
else:
continue
如果字数据在字符串中,代码将只发送数据。这是客户端的代码:
import socket
import sys
host='192.168.0.13'
port=9777
while True:
try:
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect((host,port))
except:
continue
while True:
d=s.recv(9999)
print d
s.send('received')
我的目标是在服务器和客户端之间建立连接。我希望服务器能够在while循环中接受来自用户的输入并将输入发送到客户端。客户端需要能够接收信息,当它发生时,它将向服务器发送响应。然后,用户可以继续向服务器发送数据,直到他们决定终止程序。但是,在将数据一次发送到客户端后,服务器会一直挂起。谁能告诉我如何防止这种情况?