关于组播数据包“发不出去",c#无法接收
问题一:发不出去
最近做一个小东西改进方案需要用到组播,简单来说就是我先作为服务器端组播发送设备编号,然后组播成员作为客户端接收消息后先确认对方是不是在呼叫我。是的话就返回一个消息,这样我服务器端就可以知道客户端的IP地址,从而建立TCP连接。
但是在这个过程中一波三折。。。
windows下发送组播消息,树莓派却无法接收到这个组播消息,然后使用wireshark抓包看看数据包发出去没有,结果也没看见往这个组播地址发送的消息。纳尼?我的数据包被谁偷吃了吗!!!然后上网找解决方案,关闭防火墙,设置端口,设置出入站规则等,然而发现并没有什么卵用~~~这就很烦躁了,我的数据包呢!
苦寻答案无果,偶然的机会,看到可以查最近加入的组播组(netsh interface ipv4 show joins),然后发现了罪恶之源!
——————华丽的分割线————————
电脑会存在很多虚拟网卡,在发送组播消息的时候通过其他虚拟网卡发送出去了!而这边树莓派不在这个网段之类!当然收不到这个组播数据包! 原来是你!偷吃了我的蛋糕!

好吧!关掉关掉关掉!只留下同一子网下的网卡就好了!OK!大功告成!
问题二:无法接收
这边作为客户端,收到消息后确认是在叫我当然要礼貌性的回复消息啦!UDP接收消息后会知道发送端的地址,我的做法就按照这个地址返回一个UDP数据包!
那么问题又来了,我接收不到!(因为我两端都用C语言写的时候是实现了这个功能的,因为项目原因客户端代码是C语言,服务器端是C#,所以这边改为C#)为什么!这么点东西要这么折磨我!开始以为我的代码写错了(好吧,估计就是我的代码写错了),网上各种找,各种试验也不行啊!
好像说C#这边接收不能接收不知道对端IP的数据包(真实性有待考察),C和C#不是亲戚吗?为什么你大哥行你就不行(好像不是亲戚)。。。
没办法,改变策略。
解决方案:
这边返回消息也用组播方式,这边也用组播方式接收消息。好吧,这样总行了吧!
关于组播数据包“发不出去",c#无法接收的更多相关文章
- 多网卡下,vlc发送IGMP组播报告包
这两天测试IGMP遇到一个问题,环境描述如下: 我的vlc客户端安装在windows下,该PC有两张网卡,本地连接1接公司网,本地链接2 接路由器.wireshark坚挺本地链接2,以测试路由的IGM ...
- OC动态创建的问题变量数组.有数组,在阵列13要素,第一个数据包阵列,每3元素为一组,分成若干组,这些数据包的统一管理。最后,一个数组.(要动态地创建一个数组).两种方法
<span style="font-size:24px;">//////第一种方法 // NSMutableArray *arr = [NSMutable ...
- Python3组播通信编程实现教程(发送者+接收者)
一.说明 1.1 标准组播解释 通信分为单播.多播(即组播).广播三种方式 单播指发送者发送之后,IP数据包被路由器发往目的IP指定的唯一一台设备的通信形式,比如你现在与web服务器通信就是单播形式 ...
- 组播(Multicast)传输
组播(Multicast)传输: 在发送者和每一接收者之间实现点对多点网络连接. 如果一台发送者同时给多个的接收者传输相同的数据,也只需复制一份的相同数据包.它提高了数据传送效率.减少了骨干网络出现拥 ...
- IP组播技术介绍及实现例子
引 言 近年来,随着Internet的迅速普及和爆炸性发展,在Internet上产生了许多新的应用,其中不少是高带宽的多媒体应用,譬如网 络视频会议.网络音频/视频广播.AOD/VOD.股市行情发布. ...
- D类IP地址和组播传输
在224.0.0.0-239.255.255.255范围内的地址称为D类IP组播地址.其中,224.0.0.0-224.0.0.255为预留的组播地址(永久组地址),地址224.0.0.0保留不做分配 ...
- 协议无关组播--稀疏模式 PIM-SM
一. 1)PIM-SM 1.PIM-SM转发.加入 PIM-SM适合于接收成员较少的环境.它与DM有何显著的区别?先看PIM-SM转发机制. 转发: 当组播数据到达路由器时,路由器也会去创建转发项.转 ...
- 协议无关组播-密集模式 PIM-DM
一.组播路由协议 (一) 路由器依靠转发项来转发组播数据包.转发项的生成则是组播路由协议所要完成的任务.组播路由协议有距离矢量组播路由协议(DVMRP).协议无关组播-密集模式(PIM-DM).协议无 ...
- IP组播
1 IP组播基础 IP组播技术有效地解决了单点发送.多点接收的问题.组播源只发送一份数据,被传递的信息在距组播源尽可能远的网络节点才开始被复制和分发,并且只发送给需要该信息的接收者. 说明: 本章 ...
随机推荐
- 02-SQLServer数据库附加后处于只读模式
一.总结 附加数据库后,遇到只读,并且取消只读的时候报错操作系统错误,一般都是附加的时候,使用的是SQLServer用户登录附加的,只要使用windows用户登录数据库重新附加一下就ok了. 二.处理 ...
- Python模拟百度自动输入搜索功能
# 访问百度,模拟自动输入搜索 # 代码中引入selenium版本为:3.4.3 # 通过Chrom浏览器访问发起请求 # Chrom版本:59 ,chromdriver:2.3 # 需要对应版本的C ...
- vue 手机物理返回键关闭弹框
1.打开弹窗调用 window.history.pishState() 函数 2.关闭弹框 3.mounted 生命周期 监听popstate 事件 4.beforeDestroy 生命周期 移除po ...
- ON_WM_MOUSEWHEEL无响应
问题:ON_WM_MOUSEWHEEL消息无响应 转动滚轮会导致Windows在有输入焦点的窗口(不是鼠标光标下面的窗口)产生WM_MOUSEWHEEL消息.所以当子窗口没有焦点的时候将收不到消息WM ...
- Genymotion 配置
配置Android的SDK
- 51 Nod 1100 斜率最大
1100 斜率最大 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注 平面上有N个点,任意2个点确定一条直线,求出所有这些直线中,斜率最大的那条直线 ...
- Android 内存 - 获取单个应用内存限制
方法一: adb shell getprop | grep dalvik.vm.heapgrowthlimit [dalvik.vm.heapgrowthlimit]: [64m] 方法二: Acti ...
- CF1228E Another Filling the Grid
题目链接 问题分析 比较显见的容斥,新颖之处在于需要把横竖一起考虑-- 可以枚举没有\(1\)的行数和列数,答案就是 \[ \sum\limits_{i=0}^n\sum\limits_{j=0}^m ...
- QTableWidget懒加载(动态加载)实现
在QTableWidget中加入一行行的数据,如果数据数量过多,滚动起来就会卡顿,插入数据时也会影响性能,为了解决这个问题,采用懒加载的方式,只在界面上显示10几条数据,填满界面.同时增加而外的竖直滚 ...
- C++入门经典-例8.8-虚继承
1:以前讲到从CBird类和CFish类派生子类CWaterBird时,在CWaterBird类中将存在两个CAnimal类的复制.那么如何在派生CWaterBird类时使其只存在一个CAnimal基 ...