python-3.x - 在 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 - 如何在Python中的函数调用中正确缩进多行参数列表
- arrays - char 数组是否比 C 中的 char 指针更有效?
- php - PHP Curl 忽略 META REFRESH 重定向上的 CURLOPT_COOKIEFILE
- android - 使用 PreferencesDataStore 将主题设置为活动
- macros - 为什么默认情况下不急切地扩展 lisp 宏?
- python - 如何在给它另一个任务的同时修复kivy没有响应
- c# - signInManager.IsSignedIn 返回 false 但调用了 SignInAsync
- xquery - 如何在marklogic中使用xquery返回除元素之外的现有文档
- c# - 改变我的角色移动的方式,每次角色碰撞到块
- vue.js - 如何修复 Vue3 中的 resolveComponent 警告?