疑问

  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)

这个服务端会将接收到的图片保存到本地磁盘,并以当前时间戳作为文件名。在实际应用中,需要根据具体需求修改代码。

 

 

 

    

 

posted on 2023-01-12 19:41  黑逍逍  阅读(252)  评论(0编辑  收藏  举报