问题一:发不出去

  最近做一个小东西改进方案需要用到组播,简单来说就是我先作为服务器端组播发送设备编号,然后组播成员作为客户端接收消息后先确认对方是不是在呼叫我。是的话就返回一个消息,这样我服务器端就可以知道客户端的IP地址,从而建立TCP连接。

  但是在这个过程中一波三折。。。

  windows下发送组播消息,树莓派却无法接收到这个组播消息,然后使用wireshark抓包看看数据包发出去没有,结果也没看见往这个组播地址发送的消息。纳尼?我的数据包被谁偷吃了吗!!!然后上网找解决方案,关闭防火墙,设置端口,设置出入站规则等,然而发现并没有什么卵用~~~这就很烦躁了,我的数据包呢!

  苦寻答案无果,偶然的机会,看到可以查最近加入的组播组(netsh interface ipv4 show joins),然后发现了罪恶之源!

——————华丽的分割线————————

  电脑会存在很多虚拟网卡,在发送组播消息的时候通过其他虚拟网卡发送出去了!而这边树莓派不在这个网段之类!当然收不到这个组播数据包! 原来是你!偷吃了我的蛋糕!

  好吧!关掉关掉关掉!只留下同一子网下的网卡就好了!OK!大功告成!

问题二:无法接收

  这边作为客户端,收到消息后确认是在叫我当然要礼貌性的回复消息啦!UDP接收消息后会知道发送端的地址,我的做法就按照这个地址返回一个UDP数据包!

  那么问题又来了,我接收不到!(因为我两端都用C语言写的时候是实现了这个功能的,因为项目原因客户端代码是C语言,服务器端是C#,所以这边改为C#)为什么!这么点东西要这么折磨我!开始以为我的代码写错了(好吧,估计就是我的代码写错了),网上各种找,各种试验也不行啊!

  好像说C#这边接收不能接收不知道对端IP的数据包(真实性有待考察),C和C#不是亲戚吗?为什么你大哥行你就不行(好像不是亲戚)。。。

  没办法,改变策略。

  解决方案:

  这边返回消息也用组播方式,这边也用组播方式接收消息。好吧,这样总行了吧!

  

关于组播数据包“发不出去",c#无法接收的更多相关文章

  1. 多网卡下,vlc发送IGMP组播报告包

    这两天测试IGMP遇到一个问题,环境描述如下: 我的vlc客户端安装在windows下,该PC有两张网卡,本地连接1接公司网,本地链接2 接路由器.wireshark坚挺本地链接2,以测试路由的IGM ...

  2. OC动态创建的问题变量数组.有数组,在阵列13要素,第一个数据包阵列,每3元素为一组,分成若干组,这些数据包的统一管理。最后,一个数组.(要动态地创建一个数组).两种方法

    <span style="font-size:24px;">//////第一种方法 //        NSMutableArray *arr = [NSMutable ...

  3. Python3组播通信编程实现教程(发送者+接收者)

    一.说明 1.1 标准组播解释 通信分为单播.多播(即组播).广播三种方式 单播指发送者发送之后,IP数据包被路由器发往目的IP指定的唯一一台设备的通信形式,比如你现在与web服务器通信就是单播形式 ...

  4. 组播(Multicast)传输

    组播(Multicast)传输: 在发送者和每一接收者之间实现点对多点网络连接. 如果一台发送者同时给多个的接收者传输相同的数据,也只需复制一份的相同数据包.它提高了数据传送效率.减少了骨干网络出现拥 ...

  5. IP组播技术介绍及实现例子

    引 言 近年来,随着Internet的迅速普及和爆炸性发展,在Internet上产生了许多新的应用,其中不少是高带宽的多媒体应用,譬如网 络视频会议.网络音频/视频广播.AOD/VOD.股市行情发布. ...

  6. D类IP地址和组播传输

    在224.0.0.0-239.255.255.255范围内的地址称为D类IP组播地址.其中,224.0.0.0-224.0.0.255为预留的组播地址(永久组地址),地址224.0.0.0保留不做分配 ...

  7. 协议无关组播--稀疏模式 PIM-SM

    一. 1)PIM-SM 1.PIM-SM转发.加入 PIM-SM适合于接收成员较少的环境.它与DM有何显著的区别?先看PIM-SM转发机制. 转发: 当组播数据到达路由器时,路由器也会去创建转发项.转 ...

  8. 协议无关组播-密集模式 PIM-DM

    一.组播路由协议 (一) 路由器依靠转发项来转发组播数据包.转发项的生成则是组播路由协议所要完成的任务.组播路由协议有距离矢量组播路由协议(DVMRP).协议无关组播-密集模式(PIM-DM).协议无 ...

  9. IP组播

    1  IP组播基础 IP组播技术有效地解决了单点发送.多点接收的问题.组播源只发送一份数据,被传递的信息在距组播源尽可能远的网络节点才开始被复制和分发,并且只发送给需要该信息的接收者.  说明: 本章 ...

随机推荐

  1. 02-SQLServer数据库附加后处于只读模式

    一.总结 附加数据库后,遇到只读,并且取消只读的时候报错操作系统错误,一般都是附加的时候,使用的是SQLServer用户登录附加的,只要使用windows用户登录数据库重新附加一下就ok了. 二.处理 ...

  2. Python模拟百度自动输入搜索功能

    # 访问百度,模拟自动输入搜索 # 代码中引入selenium版本为:3.4.3 # 通过Chrom浏览器访问发起请求 # Chrom版本:59 ,chromdriver:2.3 # 需要对应版本的C ...

  3. vue 手机物理返回键关闭弹框

    1.打开弹窗调用 window.history.pishState() 函数 2.关闭弹框 3.mounted 生命周期 监听popstate 事件 4.beforeDestroy 生命周期 移除po ...

  4. ON_WM_MOUSEWHEEL无响应

    问题:ON_WM_MOUSEWHEEL消息无响应 转动滚轮会导致Windows在有输入焦点的窗口(不是鼠标光标下面的窗口)产生WM_MOUSEWHEEL消息.所以当子窗口没有焦点的时候将收不到消息WM ...

  5. Genymotion 配置

    配置Android的SDK

  6. 51 Nod 1100 斜率最大

    1100 斜率最大  基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题  收藏  关注 平面上有N个点,任意2个点确定一条直线,求出所有这些直线中,斜率最大的那条直线 ...

  7. Android 内存 - 获取单个应用内存限制

    方法一: adb shell getprop | grep dalvik.vm.heapgrowthlimit [dalvik.vm.heapgrowthlimit]: [64m] 方法二: Acti ...

  8. CF1228E Another Filling the Grid

    题目链接 问题分析 比较显见的容斥,新颖之处在于需要把横竖一起考虑-- 可以枚举没有\(1\)的行数和列数,答案就是 \[ \sum\limits_{i=0}^n\sum\limits_{j=0}^m ...

  9. QTableWidget懒加载(动态加载)实现

    在QTableWidget中加入一行行的数据,如果数据数量过多,滚动起来就会卡顿,插入数据时也会影响性能,为了解决这个问题,采用懒加载的方式,只在界面上显示10几条数据,填满界面.同时增加而外的竖直滚 ...

  10. C++入门经典-例8.8-虚继承

    1:以前讲到从CBird类和CFish类派生子类CWaterBird时,在CWaterBird类中将存在两个CAnimal类的复制.那么如何在派生CWaterBird类时使其只存在一个CAnimal基 ...