首页 > 解决方案 > 在 Python 中使用套接字获取一个空的 png 图像

问题描述

我尝试将图像从客户端传输到服务器,但它仅适用于连接但发送图像。

这是客户端的代码:

import socket

host = '10.10.40.22'
port = 8888
address = (host, port)

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:

    #connect to the server
    s.connect(address)

    print('start send image')
    with open('doge.png', 'rb') as imgfile:
        while True:
            imgData = imgfile.readline(1024)
            if not imgData:
                break
            s.send(imgData)

print('end')

这是服务器的代码:

host = '10.10.40.22'
port = 8888
address = (host, port)

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(address)
s.listen(1)

print('wait for connection...')

conn, addr = s.accept()

    #start to receive picture
with open('Pictures/doge.png', 'wb') as imgfile:
    while True:
        img_data = conn.recv(1024)
        if not img_data:
            break
        imgfile.write(img_data)
        print('writing ...')

conn.close()
s.close()
print('end')

请注意,我在服务器代码中打印了一条调试消息,如果它将任何字节写入图像,则打印消息“正在写入”

我现在该怎么办?

标签: python-3.xfilesocketsio

解决方案


推荐阅读