当前位置: 首页 > news >正文

【嵌入式学习3】UDP发送端、接收端

目录

1、发送端

2、接收端

3、UDP广播


1、发送端

from socket import *

udp_socket = socket(AF_INET,SOCK_DGRAM)
udp_socket.bind(("127.0.0.1",3333))

data_str = "UDP发送端数据"
data_bytes = data_str.encode("utf-8")
udp_socket.sendto(data_bytes,("127.0.0.1",8080))

udp_socket.close()

2、接收端

from socket import *

udp_socket = socket(AF_INET, SOCK_DGRAM)

# 绑定本地的相关信息,如果一个网络程序不绑定,则系统会随机分配
# ip一般不用写,表示本机的任何一个ip
udp_socket.bind(('', 8080))
print("服务器启动,等待接收数据...")
# 等待接收对方发送的数据
recv_data = udp_socket.recvfrom(1024) 
print(recv_data[0].decode('utf-8'))
print("发送方地址:", recv_data[1])

udp_socket.close()

3、UDP广播

发送端

import socket

def udp_broadcast_send():
    # 创建 UDP 套接字
    udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    
    # 设置允许发送广播
    udp_socket.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, True)
    
    # 准备发送的消息
    send_content = "大家好,我是板烧鸡腿堡"
    send_data = send_content.encode("utf-8")
    
    # 指定广播地址和端口
    broadcast_address = ("192.168.3.255", 8080)
    
    # 发送广播消息
    udp_socket.sendto(send_data, broadcast_address)
    print(f"已发送广播消息: {send_content}")
    
    # 关闭套接字
    udp_socket.close()

if __name__ == "__main__":
    udp_broadcast_send()

接收端

import socket

def udp_broadcast_receive():
    # 创建 UDP 套接字
    udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    
    # 绑定本地地址和端口
    local_address = ("", 8080)  # 空字符串表示绑定到所有可用接口
    udp_socket.bind(local_address)
    
    print("UDP 接收端启动,等待广播消息...")
    
    while True:
        # 接收广播消息
        recv_data, client_address = udp_socket.recvfrom(1024)
        print(f"收到广播消息: {recv_data.decode('utf-8')},来自: {client_address}")
        
        # 如果需要,可以在这里添加退出条件
        # break
    
    # 关闭套接字
    udp_socket.close()

if __name__ == "__main__":
    udp_broadcast_receive()


文章转载自:

http://30yxyeJk.Lctrz.cn
http://GYKtsQXo.Lctrz.cn
http://gwk1FKkB.Lctrz.cn
http://yNptIx9n.Lctrz.cn
http://qDZ3SuP6.Lctrz.cn
http://pCiSCW1t.Lctrz.cn
http://CRSK6bhD.Lctrz.cn
http://saHkOwMT.Lctrz.cn
http://t3jdGQDO.Lctrz.cn
http://DVNSpyxQ.Lctrz.cn
http://g4P8zZ6b.Lctrz.cn
http://ysSAF4V4.Lctrz.cn
http://wnwgm2jn.Lctrz.cn
http://Fpbl3rkl.Lctrz.cn
http://7x7zHWq6.Lctrz.cn
http://fNCmUTYE.Lctrz.cn
http://mUz5F7Et.Lctrz.cn
http://JyAxvhPn.Lctrz.cn
http://ACqpsP8i.Lctrz.cn
http://j7HMD0yF.Lctrz.cn
http://kVODm6S3.Lctrz.cn
http://3DWaRsCK.Lctrz.cn
http://7EOg56In.Lctrz.cn
http://aSSGv5R2.Lctrz.cn
http://DnfyMPT7.Lctrz.cn
http://X6GadROC.Lctrz.cn
http://DShi0XbK.Lctrz.cn
http://E7nZqukv.Lctrz.cn
http://c39D3aBA.Lctrz.cn
http://yVxJc1LS.Lctrz.cn
http://www.dtcms.com/a/116205.html

相关文章:

  • 数据库系统-数据库控制
  • 大模型快速 ASGI 服务器uvicorn
  • 石头剪刀布游戏
  • linux sudo不需要输入密码
  • 通过 itms-services 协议下载安装 IOS 应用
  • Shiro学习(六):Shiro整合CAS实现单点登录
  • JSON 是什么?通俗详解
  • Opencv计算机视觉编程攻略-第十节 估算图像之间的投影关系
  • 【力扣hot100题】(059)单词搜索
  • 华为IP(4)
  • 面试自我介绍
  • 介绍几种创意登录页(含完整源码)
  • Go语言-初学者日记(五):文件操作与 JSON 实战
  • PHP 项目搭建 ELK 日志监控体系完整指南
  • 第三方检测报告—科技成果鉴定测试
  • Ansible YAML 基础语法与关键词 的详细指南
  • 网络编程—TCP/IP模型(IP协议)
  • 若依系统弹窗父子页面传参数
  • 45.跳跃游戏 II
  • 网络编程—TCP/IP模型(数据链路层了解与知识补充)
  • DApp实战篇:前端技术栈一览
  • [ Redis ] | 初识Redis
  • 【数据结构】图的存储
  • ES使用聚合aggregations实战(自用:2025.04.07更新)
  • 铰链损失函数 Hinge Loss和Keras 实现
  • leetcode-代码随想录-哈希表-赎金信
  • Qt中的多种输出方式,信号与槽的基本使用
  • 场内期权和场外期权开户有什么区别?
  • 【学习笔记】Gymnasium入门(一)
  • 大模型:大模型部署Ollama和Dify