疑问
1. 发送图片是以什么格式
2. 字节数据怎么保存到本地
3. 怎么对传输不同设备发送的图片进行分类存储
4. udp实现
解答
import os import sys import json import time import threading import socket class UdpImageSender: def __init__(self, server_address=('127.0.0.1', 9999), image_dir='./images'): self.server_address = server_address self.image_dir = image_dir self.sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) def send_image(self, image_path): with open(image_path, 'rb') as f: data = f.read() self.sock.sendto(data, self.server_address) def run(self): while True: for root, dirs, files in os.walk(self.image_dir): for filename in files: if filename.endswith('.jpg') or filename.endswith('.jpeg') or filename.endswith('.png'): image_path = os.path.join(root, filename) self.send_image(image_path) time.sleep(0.1) if __name__ == '__main__': sender = UdpImageSender() sender.run()
import socket server_address = ('127.0.0.1', 9999) buf_size = 1024 * 64 # 64KB sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) sock.bind(server_address) while True: data, address = sock.recvfrom(buf_size) with open(f'image_{time.time()}.jpg', 'wb') as f: f.write(data)
这个服务端会将接收到的图片保存到本地磁盘,并以当前时间戳作为文件名。在实际应用中,需要根据具体需求修改代码。