udp多播组播

import socket  ,struct,time# 组播地址和端口号  
MCAST_GRP = '239.0.0.1'  
MCAST_PORT = 8888  # 创建UDP socket对象  
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)  # 绑定socket对象到本地端口号  
# sock.bind((MCAST_GRP, MCAST_PORT))  # 加入组播组  
mreq = struct.pack("4sl", socket.inet_aton(MCAST_GRP), socket.INADDR_ANY) # 使用INADDR_ANY来指定任何网络接口  
sock.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP, mreq)  # 发送组播消息  
message = b'Hello, multicast!'  
sock.sendto(message, (MCAST_GRP, MCAST_PORT))  
print('aa')
cnt = 0
# 接收组播消息  
while True:  message = 'Hello, zym!'  +str(cnt)print(message)message=message.encode('gbk')cnt = cnt+1sock.sendto(message, (MCAST_GRP, MCAST_PORT))  time.sleep(1)#data, addr = sock.recvfrom(1024)  #print('Received message:', data)

实测wifi环境中1发两收,1s发送一次。接收端的丢包率很严重。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/263418.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

sentinel整合nacos配置中心持久化

在网上找了很多的资料,发现sentinel整合nacos持久化的博文和视频大多数都只有改造限流部分的教程,并且都需要修改前端,略显麻烦,至于剩下的熔断、热点流控、授权的更是没有相关的改造教程,最后在知乎的看到一篇文章后让…

【目标检测从零开始】torch实现yolov3数据加载

文章目录 数据简介Dataset读取Step1:类别定义Step2:解析xmlStep3:实现DatasetStep4:数据增强Step5:添加dataset_collateStep6:测试 小结 数据简介 林业病虫害防治项目用到的AI识虫数据集,该数据…

Base64编码解码

一、Base64编码技术简介 Base64编码是一种广泛应用于网络传输和数据存储的编码方式。它将原始数据转换为可打印的字符形式,以便于传输和存储。Base64编码后的数据长度是原始数据长度的约3/4,具有一定的压缩效果。 Base64编码解码 -- 一个覆盖广泛主题工…

【蜗牛到家】获南明电子信息产业引导基金战略投资

智慧社区生活服务平台「蜗牛到家」已于近期获得贵阳南明电子信息产业引导基金、华科明德战略投资。 贵阳南明电子信息产业引导基金属于政府旗下产业引导基金,贵州华科明德基金管理有限公司擅长电子信息产业、高科技产业、城市建设及民生保障领域的投资,双…

主窗体、QFile、编码转换、事件、禁止输入特殊字符

主窗体 部件构成 菜单栏、工具栏、主窗体、状态栏。 UI 编辑器设计主窗体 💡 简易记事本的实现(part 1) 菜单栏 工具栏(图标) 主窗体 完善菜单栏: mainwindow.cpp #include "mainwindow.h"…

《PySpark大数据分析实战》-01.关于数据

📋 博主简介 💖 作者简介:大家好,我是wux_labs。😜 热衷于各种主流技术,热爱数据科学、机器学习、云计算、人工智能。 通过了TiDB数据库专员(PCTA)、TiDB数据库专家(PCTP…

PHP 二维码内容解析、二维码识别

目录 1.首先是一些错误的示例 2.正确示例 3.二维码解析 4.完整示例,含生成 5.代码执行结果 6.参考文档 1.首先是一些错误的示例 本示例使用的是php7.3 通过搜索各种结果逐个尝试以后,得出一个可使用版本 解析错误经历:vendor核心报错 …

[C++]:10.vector使用

vector使用 一.vector使用1.构造函数:2.迭代器遍历数据:3.空间问题:1.size():返回有效数据个数:2.capacity():返回容量大小:3.容量检测:4.emptr():判断顺序表是否为空:5.…

Linux6-配置网络、源码包的编译和安装

配置 linux 网络 配置主机名 修改/etc/hostname 配置文件,永久配置主机名 [rootlocalhost ~]# vim /etc/hostname svr7.tedu.cn [rootlocalhost ~]# cat /etc/hostname svr7.tedu.cn [rootlocalhost ~]# reboot #重启生效命令行永久修改主机名 [rootlocalhost ~…

Vue3使用Tailwind CSS

安装 Tailwind 以及其它依赖项 npm install -D tailwindcsslatest postcsslatest autoprefixerlatest生成配置文件: npx tailwindcss init -p.修改配置文件 tailwind.config.js 2.6版本 : module.exports {purge: [./index.html, ./src/**/*.{vue,j…

arm-none-eabi-gcc not find

解决办法:安装:gcc-arm-none-eabi sudo apt install gcc-arm-none-eabi; 如果上边解决问题了就不用管了,如果解决不了,加上下面这句试试运气: $ sudo apt-get install lsb-core看吧方正我是运气还不错,感…

call,apply,bind

1.这三个方法都能改变this的指向 2.代码实战 let obj1 {name: "小红",age: 20,fn: function () {console.log(当前this的指向,this);console.log(我叫${this.name},今年${this.age}岁);},};obj1.fn(); 这里的代码,obj1是一个对象,里面有属性name和age 正常情况下我…