python socket 发生UDP 和 UDPServer接受UDP实例

python UDP 通信

socket 发送udp 示例

复制代码
import socket
import time

# 初始化端口
self.ip_port = (host_msg,ip_port_msg)
# 创建 socket
self.client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)  
# 发送
self.client.sendto(self.msg,self.ip_port)
# 关闭 soceket
self.client.close()

UDPServer 用于接收 UDP 示例

复制代码
# 继承  UDPServer 
class MyUDPServer(UDPServer):

    def __init__(self, server_address, RequestHandlerClass, queue):
        # 传递用于接受的队列
        self.udp_queue = queue  
        # UDPServer 实例化           地址          服务函数
        UDPServer.__init__(self, server_address, RequestHandlerClass, bind_and_activate=True)


class Handler(BaseRequestHandler):
    def handle(self):
        self.data = self.request[0].strip()
        self.server.udp_queue.put(self.data)

复制代码
class my_udp_server():
    def __init__(self,udp_queue):
        super().__init__()
        # 创建用于接受的队列
        self.queue = udp_queue
        
    # 创建服务,
    def open_udp_server(self,ip,port):  
            ADDR = ip, port
            #实例化 MyUDPServer 类
            self.UDPServer = MyUDPServer(ADDR, Handler, self.queue)  
            #创建线程,将UDPServer的serve_forever  传递进线程成中
            self.server_thread = threading.Thread(target=self.UDPServer.serve_forever)  
            #设置后台线程
            self.server_thread.setDaemon(True) 
            #启动线程
            self.server_thread.start()   

    def close_udp_server(self):  
            #服务  shutdown
            self.UDPServer.shutdown()
            #关闭服务
            self.UDPServer.server_close()


# 创建 队列用于接收
self.udp_queue= Queue(maxsize=5)
# 实例化 udp 服务
self.udp_server = my_udp_server(self.udp_queue)
# 打开服务
self.udp_server.open_udp_server("192.168.1.100",6000)
# 关闭服务
self.udp_server.close_udp_server()
相关推荐
CoderYanger6 小时前
优选算法-优先级队列(堆):75.数据流中的第K大元素
java·开发语言·算法·leetcode·职场和发展·1024程序员节
TracyCoder1236 小时前
MySQL 实战宝典(八):Java后端MySQL分库分表工具解析与选型秘籍
java·开发语言·mysql
非凡的世界6 小时前
为什么我和越来越多的PHP程序员,选择了 Webman ?
开发语言·php·workman·webman
艾莉丝努力练剑6 小时前
【Python基础:语法第一课】Python 基础语法详解:变量、类型、动态特性与运算符实战,构建完整的编程基础认知体系
大数据·人工智能·爬虫·python·pycharm·编辑器
MarkHD6 小时前
车辆TBOX科普 第45次
java·开发语言
gCode Teacher 格码致知7 小时前
Python基础教学:如何拼接字符串?-由Deepseek产生
python
还债大湿兄7 小时前
阿里通义千问调用图像大模型生成轮动漫风格 python调用
开发语言·前端·python
blank@l7 小时前
python测开小工具--日志查询分析工具
python·python接口自动化测试基础·python测试开发·日志查询分析·日志分析统计查询·软件测试工具·argparse模块
hu_nil7 小时前
LLMOps-第十三周
python·vllm
空影星7 小时前
轻量日记神器RedNotebook,高效记录每一天
python·数据挖掘·数据分析·音视频