Python 3套接字编程:保存多个图像

时间:2017-09-22 03:51:43

标签: python sockets

我一直在处理图片传输服务器,但我遇到了保存多张图片的问题。如果客户端上的套接字关闭,只允许该客户端发送一个图像,则服务器只能保存多个图像(来自多个客户端)。我还尝试发送文件大小并在满足文件大小时停止保存,但无论出于何种原因,图像都无法打开。

客户代码

f = open(filename, "rb")
while True:
    data = f.read(512)
    if not data:
        break
    s.send(data)
f.close()

服务器代码

for client in clients:
    while True:
        data = client[0].recv(512)
        if data == "":
           break
        f.write(data)

1 个答案:

答案 0 :(得分:-1)

尝试在完成图像传输后从客户端发送空字符串。我认为问题在于服务器无法区分传输的图像数量。

<强>客户端:

for file in files:
    with open(filename, "rb") as f:
        data = f.read()
        while data:
            s.send(data[:512])
            data = data[512:]
        s.send('')

服务器

from functools import partial

while True:

    with open(filename, "rb") as f:
        data = b"".join(iter(partial(client[0].recv, 512), b''))
        f.write(data)