我使用Python套接字将50多个客户端连接到服务器以传输图像。我正在使用无线网络连接它们。我遇到的一个问题是,当没有通信一段时间说10分钟时,软件会中断。否则它工作正常。
这是客户端的send方法:
f = open(fullpath, "rb")
filesize = str(os.path.getsize(fullpath))
s.send(filesize.encode('utf-8'))
while True:
data = f.read(512)
if not data:
break
s.send(data)
f.close()
print("Finished sending image to server")
output("Finished sending image to server")
这是服务器端的receive方法:
client[0].send(str.encode("start"))
data = client[0].recv(1024).decode('utf-8')
filesize = int(data)
f = open(filenames[count], "wb")
currentSize = 0
while currentSize < filesize:
data = client[0].recv(512)
if not data:
break
if len(data) + currentSize > filesize:
data = data[:filesize-currentSize]
f.write(data)
currentSize += len(data)
f.close()
在客户端,我收到错误:[Errno 32]管道损坏。在服务器端,我得到错误:'utf-8'编解码器无法解码位置0中的字节0xff:无效的起始字节。 客户端发送文件大小时会发生错误。
我的代码中是否有错误?我可以让服务器和客户端不断地来回发送字符串以保持连接活着吗?