我的客户端发送一个字符串“abcd”并关闭套接字(写入部分)。我的服务器读取数据并将其附加到列表(集合)中,直到收到文件末尾(检测到半关闭套接字)。然后它遍历列表并发送数据。
我的服务器代码:
while True:
try:
sock,address = self.__mySocket.accept()
except:
print "Client is dead"
break
print "Client connect: " + str(address)
collection = []
while True:
data = sock.recv()
if len(data) == 0:
break
data = str(data[::-1])
collection.append(data)
for val in collection:
sock.send(val)
sock.close()
客户端:
sslsock.sendall('abcd\n')
time.sleep(1)
sslsock.shutdown(socket.SHUT_WR)
data = ""
while True:
data = sslsock.recv()
if len(data) == 0:
sslsock.close()
sys.exit(1)
print data
现在,当我在客户端上打印数据时,它只会打印垃圾。我试过使用pickle
,但也没有用。现在,当我在客户端上注释掉关闭并围绕它工作我的服务器时,它工作正常。它打印发送数据的反面。