lwip发送组播数据问题

1、今天测试组播包发现,组播数据只能在默认网卡发送成功,多次交叉测试依然这样,所以和网卡的配置无关

(我的是双网卡)

2、最后搜源码看,才发现有一段代码如下:

struct netif *
ip4_route(const ip4_addr_t *dest)
{
#if !LWIP_SINGLE_NETIFstruct netif *netif;LWIP_ASSERT_CORE_LOCKED();#if LWIP_MULTICAST_TX_OPTIONS/* Use administratively selected interface for multicast by default */if (ip4_addr_ismulticast(dest) && ip4_default_multicast_netif) {return ip4_default_multicast_netif;}
#endif /* LWIP_MULTICAST_TX_OPTIONS */

在ip4_route函数中,使能组播后(LWIP_MULTICAST_TX_OPTIONS=1),貌似这个代码

限制死了发送数据的网卡啊,

所以可以通过

1)

void
ip4_set_default_multicast_netif(struct netif *default_multicast_netif)
{
  ip4_default_multicast_netif = default_multicast_netif;
}

函数,将ip4_default_multicast_netif设置为NULL,则取消这个限制,

2)或者通过ip4_set_default_multicast_netif,强制设置一个网卡为默认组播网卡

3、问题来了,怎么让两个网卡都发送组播数据呢?

需要改ip4_route,或者ip4_route_src 函数代码啊??!!

默认的lwip中,未定义LWIP_HOOK_IP4_ROUTE_SRC,也未定义ip4_default_multicast_netif,所以组播过程也会按照正常发包的流程,目的ip因为是组播的,所以和任何网卡的ip网段都不匹配,所以会定位到默认网卡发送数据

4、最后再贴一下这个数据流图

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

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

相关文章

四、HTML 属性

属性是 HTML 元素提供的附加信息。 一、HTML 属性 HTML 元素可以设置属性属性可以在元素中添加附加信息属性一般描述于开始标签属性总是以名称/值对的形式出现&#xff0c;比如&#xff1a;name"value"。 二、 属性实例 HTML 链接由 <a> 标签定义。链接的地…

【hyperledger-fabric】将智能合约部署到通道

简介 本文主要来自于B站视频教学视频&#xff0c;也主要参看了官方文档中下图这一章节。针对的是测试网络中go语言的部分&#xff0c;部署测试网络。附上B站的教学视频 B站教学视频第一小节&#xff0c;附上 官方文档 1.启动网络 # 跳转到指定的目录 cd /root/fabric/fabri…

QT----Visual stdio翻金币案例,附源码

历经一个月&#xff0c;各种事情磕磕绊绊&#xff0c;终于结束了&#xff0c;自己还是太菜了 案例的文档写的教程已经很详细&#xff0c;这边主要是记录一些问题 github代码 gitee代码 1、图片无法加载 一开始加载首页图片和标题出不来&#xff0c;结果是paintEvent重写的字打…

Redis(一)

1、redis Redis是一个完全开源免费的高性能&#xff08;NOSQL&#xff09;的key-value数据库。它遵守BSD协议&#xff0c;使用ANSI C语言编写&#xff0c;并支持网络和持久化。Redis拥有极高的性能&#xff0c;每秒可以进行11万次的读取操作和8.1万次的写入操作。它支持丰富的数…

虚幻UE 材质-进阶边界混合之距离场限制PDO范围

基础边界混合那篇文章&#xff1a;虚幻UE 材质-边界混合之PDO像素深度偏移量 可以通过抖动来进行混合&#xff0c;但是有问题的点在与抖动发生的位置只需要在两物体的交界处 所以本篇文章会通过距离场限制来限制抖动的位置&#xff0c;防止其他地方发生抖动影响画面。 文章目录…

【IDEA——连接MySQL数据库,创建库和表】

IDEA——连接MySQL数据库&#xff0c;创建库和表 1、打开idea数据库操作页面&#xff08;两种打开方法都可以&#xff09; 2、点击加号&#xff0c;选择Driver,方便导入连接数据库的驱动jar包 然后选择MySQL进行添加驱动 3、点击上一步页面的左上方的Data Sources连接本地数据…

组播(多播)原理及代码

单播地址标识单个 IP 接口&#xff0c;广播地址标识某个子网的所有 IP 接口&#xff0c;多播地址标识一组 IP 接口。 单播和广播是寻址方案的两个极端&#xff08;要么单个要么全部&#xff09;&#xff0c;多播则意在两者之间提供一种折中方 案。多播数据报只应该由对它感兴…

职场商务英语口语“自助餐”用英文怎么说?柯桥外语培训

“自助餐”用英语怎么说&#xff1f; ● 其实很简单&#xff0c;“自助餐”的英文就是&#xff1a;Buffet。 例句&#xff1a; At lunchtime, theres a choice between the buffet or the set menu.15857575376 午饭时&#xff0c;可以选择自助餐或套餐。 We are going to …

AutoPDMS的工程文件突然不见了……

1.用户好不容易一个工程的应力分析计算通过&#xff0c;不料&#xff0c;第二天使用时提示以下信息&#xff0c;对用户来说简直如同噩梦降临。 分析&#xff1a;要么用户移动了文件&#xff0c;要么用户删除了文件&#xff0c;用户两者都否定。无论怎么样文件不会莫名不见了&am…

linux(mysql下载以及操作)

下载mysql 查看镜像 docker images 下载MySQL镜像 mysql/mysql-server:8.0 创建文件夹&#xff0c;创建配置文件和放数据文件 mkdir -p /data/mysql/{conf,,data} 创建配置文件 my.cnf 写入配置文件my.cnf的代码 [client] default-character-setutf8[mysql] de…

反编译有哪些优势

在现在这个信息化的时代&#xff0c;软件开发中的编程是关键步骤&#xff0c;了解编程的反编译同样至关重要。对于大多数人来说&#xff0c;编程和反编译似乎是两个相对比较陌生的概念&#xff0c;但是都在软件开发周期中起着至关重要的作用。尤其是反编译&#xff0c;它在多个…

关于我花费六千多组了台window+Linux主机

一边学习&#xff0c;一边总结&#xff0c;一边分享&#xff01; 写在前面 我在2023年12月组了一台“洋垃圾”的主机&#xff0c;一边当做台式机使用&#xff0c;一边当做服务器使用。这个方案算是相对比较划算的方案。我开始是打算直接单做服务器使用的&#xff0c;以及内存…

03-SpringCloud-Ribbon负载均衡

Ribbon负载均衡 1.1.负载均衡原理 SpringCloud底层其实是利用了一个名为Ribbon的组件&#xff0c;来实现负载均衡功能的。 那么我们发出的请求明明是http://userservice/user/1&#xff0c;怎么变成了http://localhost:8081的呢&#xff1f; 1.2.源码跟踪 为什么我们只输入…

Spring Cloud Gateway集成Knife4j

1、前提 网关路由能够正常工作。 案例 基于 Spring Cloud Gateway Nacos 实现动态路由拓展的参考地址&#xff1a;Spring Cloud Gateway Nacos 实现动态路由 详细官网案例&#xff1a;https://doc.xiaominfo.com/docs/middleware-sources/spring-cloud-gateway/spring-gatewa…

《算法导论》复习——CHP1、CHP2 算法基础

基本定义&#xff1a; 算法是一组有穷的规则&#xff0c;规定了解决某一特定类型问题的一系列运算。 关心算法的正确性和效率。 算法的五个重要特性&#xff1a;确定性、能行性、输入、输出、有穷性。 基础方法&#xff1a; 伪代码&#xff08;Pseudocode&#xff09;&#xff…

MATLAB基本绘图操作(二维和三维绘图)

MATLAB基本绘图操作 文章目录 MATLAB基本绘图操作1、二维平面绘图2、三维立体绘图 1、二维平面绘图 x0:0.01:2*pi; %从09开始&#xff0c;每次递增0.01&#xff0c;一直到2*pi结束 y sin(x) ; figure %建立一个幕布 plot(x, y) %绘制二维的平面图 title(y sin(x)) %标题…

Flink版本更新汇总(1.14-1.18)

0、汇总 1.14.0 1.有界流支持 Checkpoint&#xff1b; 2.批执行模式支持 DataStream 和 Table/SQL 混合应用&#xff1b; 3.新增 Hybrid Source 功能&#xff1b; 4.新增 缓冲区去膨胀 功能&#xff1b; 5.新增 细粒度资源管理 功能&#xff1b; 6.新增 DataStream 的 Pulsar …

element中Tree 树形控件实现节点过滤和懒加载节点

目录 1.代码实现2. 效果图3. 使用到的部分属性说明4. 更多属性配置查看element官网 1.代码实现 <template><div class"TreePage"><el-row :gutter"20"><!--村数据--><el-col :span"24"><div class"head-…

平安人寿新疆分公司:深化消费帮扶,为乡村振兴注入平安力量

为深入贯彻关于“三农”工作的重要论述&#xff0c;落实自治区乡村振兴局的指导部署&#xff0c;近日&#xff0c;平安人寿新疆分公司一把手刘湑杰总一行赴和田县访惠聚驻村工作队走访&#xff0c;慰问了驻村工作队、五老人员及困难村民。 期间&#xff0c;刘湑杰总一行调研了…