问题一:发不出去

  最近做一个小东西改进方案需要用到组播,简单来说就是我先作为服务器端组播发送设备编号,然后组播成员作为客户端接收消息后先确认对方是不是在呼叫我。是的话就返回一个消息,这样我服务器端就可以知道客户端的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. HTML5 Canvas绘图基础

  2. Oracle之:Function :dateToNumber()

    create or replace function dateToNumber(i_date in date) return number is result number ; begin resul ...

  3. Mac终端神器zsh

    Mac终端神器zsh 先上一张图 1.背景介绍 在unix 内核的操作系统中,当然现在衍生出好多分支,linux ,OS X 都算. shell 就算和上面这些系统内核指令打交道的一座桥梁,我们通过键 ...

  4. (考试大整理~)Xxy 的车厢调度

    这一题我以前研究过哈哈哈~ (train.cpp/c/pas) Description 有 一 个 火 车 站 , 铁 路 如 图 所 示 ,每辆火车从 A 驶入,再从 B 方向驶出,同时它的车厢可以 ...

  5. 【CUDA 基础】3.3 并行性表现

    title: [CUDA 基础]3.3 并行性表现 categories: - CUDA - Freshman tags: - nvprof toc: true date: 2018-04-15 21 ...

  6. Catch That Cow (POJ - 3278)(简单BFS)

    转载请注明出处:https://blog.csdn.net/Mercury_Lc/article/details/82693928作者:Mercury_Lc 题目链接 题解:给你x.y,x可以加1.减 ...

  7. AtCoder AGC032E Modulo Pairing (二分、贪心与结论)

    题目链接 https://atcoder.jp/contests/agc032/tasks/agc032_e 题解 猜结论好题. 结论是: 按\(a_i\)从小到大排序之后,一定存在一种最优解,使得以 ...

  8. 23.Python位运算符详解

    位运算符通常在图形.图像处理和创建设备驱动等底层开发中使用.使用位运算符可以直接操作数值的原始 bit 位,尤其是在使用自定义的协议进行通信时,使用位运算符对原始数据进行编码和解码也非常有效. 位运算 ...

  9. CentOS7下安装mysql5.1 或升级到5.7 以及小问题的解决方案

     正文开始 1.首先打开终端输入以下内容下载mysql5.1的repo源(安装5.7从第二步执行) wget http://repo.mysql.com/mysql-community-release ...

  10. spark feature

    spark推测执行:当成功的Task数超过总Task数的75%(可通过参数spark.speculation.quantile设置)时,再统计所有成功的Tasks的运行时间,得到一个中位数,用这个中位 ...