如何使用套接字发送多个图像文件?

时间:2019-02-07 13:34:21

标签: python image sockets server client

以下代码仅发送第一个图像文件。如何发送多张图片?

服务器端代码:

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a class="like badge">
        <span class="liked_item_{{item.id}} liked_votes">
         5
        </span>
          <span class="liked_item_{{item.id}} liked_votes">
         1
        </span>
        
          <span class="liked_item_{{item.id}} liked_votes">
         3
        </span>
        
          <span class="liked_item_{{item.id}} liked_votes">
         100
        </span>
      </a>

客户端代码:

import socket

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(("", 12345))
bind to ('', port)
s.listen(10)
c, addr = s.accept()
print('{} connected.'.format(addr))

m = c.recv(1024)
m1 = c.recv(1024)
f = open(r"C:\python voice\haha3.jpg", "wb")
f1 = open(r"C:\python voice\haha4.jpg", "wb")
data = None
data1 = None

while True:
    data = m
    data1 = m1
    if m:
        while m:
            m = c.recv(1024)
            data += m
        else:
            break
    if m1:
        while m1:
            m1 = c.recv(1024)
            data1 += m1
        else:
            break

f.write(data)
f.close()
f1.write(data1)
f1.close()

print("Done receiving")

1 个答案:

答案 0 :(得分:0)

您使用普通的TCP协议。

这是一种传输协议。它处理通用的字节流。

您必须使用或发明一种知道什么文件的应用程序协议。

示例:在发送文件之前,发送一个标头,描述将跟随多少文件及其大小(以字节为单位)。有了这些信息,您就可以从流中重建文件