写一个接收端代码并能保存多张照片
时间: 2024-03-24 17:40:04 浏览: 53
好的,以下是一个简单的接收端代码,可以接收来自客户端发送的照片,并保存在本地文件夹中。
```python
import socket
import numpy as np
import cv2
# 设置接收端IP地址和端口号
server_ip = '10.132.11.225'
server_port = 8000
# 创建socket对象
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind((server_ip, server_port))
# 开始监听
server_socket.listen(0)
# 创建OpenCV窗口
cv2.namedWindow('image', cv2.WINDOW_NORMAL)
# 循环接收客户端传来的照片
while True:
# 接收客户端连接
client_socket, addr = server_socket.accept()
# 接收图片数据
data = b""
while True:
packet = client_socket.recv(4096)
if not packet: break
data += packet
# 解码图片数据
img_bytes = np.frombuffer(data, dtype='uint8')
img = cv2.imdecode(img_bytes, cv2.IMREAD_COLOR)
# 显示图片
cv2.imshow('image', img)
# 保存图片
filename = f"image_{np.random.randint(100)}.jpg" # 随机生成文件名
cv2.imwrite(filename, img)
# 等待按键操作
key = cv2.waitKey(1) & 0xFF
if key == ord('q'):
break
# 关闭窗口和连接
cv2.destroyAllWindows()
server_socket.close()
```
这个接收端代码可以接收客户端发送的JPEG格式图片,并且可以保存多张照片。当接收到一张照片时,它会随机生成一个文件名,并将其保存在本地文件夹中。你可以根据需要修改文件名和保存路径。如果按下键盘上的'q'键,程序会退出。
阅读全文