0
我写了一个python客户端与服务器端进行通信。每当我完成数据打印时,我必须拨打sock.shutdown(socket.SHUT_WR)
,否则服务器不会做任何响应。但在拨打sock.shutdown(socket.SHUT_WR)
后,我必须重新连接,因为sock.connect((HOST, PORT))
,其他明智的我无法发送数据到服务器。那么,如何在不关闭连接的情况下保持连接。 我的示例代码如下:我怎样才能不断地发送数据,而无需在Python中关闭套接字连接
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((HOST, PORT))
sock.sendall(data)
sock.shutdown(socket.SHUT_WR)
received = sock.recv(1024)
while len(received)>0:
received = sock.recv(1024)
sock.sendall(newdata) # this would throw exception
服务器端代码如下:
def handle(self):
cur_thread = threading.current_thread()
while True:
self.data = self.rfile.read(bufsiz=100)
if not self.data:
print 'receive none!'
break
try:
data = self.data
print 'Received data, length: %d' % len(data)
self.wfile.write('get received data\n')
except Exception:
print 'exception!!'