关于组播数据包“发不出去",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组播技术有效地解决了单点发送.多点接收的问题.组播源只发送一份数据,被传递的信息在距组播源尽可能远的网络节点才开始被复制和分发,并且只发送给需要该信息的接收者. 说明: 本章 ...
随机推荐
- substring和substr的区别
substring和subsrt都是获取指定位数 字符串的方法: 语法: substring(start,end)/substring(one); substr(start,end)/substr(o ...
- MySQL 关于自定义函数的操作
-- 函数 --> 模块化,封装,代码复用 create function 函数名([参数列表]) returns 数据类型 begin SQL语句: return 值: end; 示例: -- ...
- vue基本知识点概括
目录 Vue 渐进式 JavaScript 框架 一.走进Vue 1.what -- 什么是Vue 2.why -- 为什么要学习Vue 3.special -- 特点 4.how -- 如何使用Vu ...
- 【原】eclipse连接数据库开发web项目
之前也写过web项目,今天用的时候死活连不上My SQL,浪费了很多时间,下面总结一下: 在java项目里面访问数据库 (1)项目上右击->Build Path->add External ...
- Vue 工程化最佳实践
目录结构 总览 api 目录用于存放 api 请求,文件名与模型名称基本一致,文件名使用小驼峰,方法名称与后端 restful 控制器一致. enums 目录存放 常量,与后端的常量目录对应 ...
- TensorFlow使用记录 (十): Pretraining
上一篇的模型保存和恢复熟练后,我们就可以大量使用 pretrain model 来训练任务了 Tweaking, Dropping, or Replacing the Upper Layers The ...
- MapBox
MapBox的地图API大家用过吗 用作网站或者APP的底图,就不用自己架设地图服务器了 发布自己的地图了 这跟Google Map是一样的道理,类似的还有天地图,高德,百度地图API等等. 属于前端 ...
- 基于node、webpack、搭建一个koa服务器
1.首先需要node(去官网下载) 2.见一个文件夹 比如koa cmd——r cd koa文件 3.npm init 4.安装webpack (本地安装 ...
- android自定义键盘(解决弹出提示的字体颜色问题)
最近准备要做一个项目,需要用到自定义小键盘来确保安全,而且还需要精确获得用户点击键盘时的落点位置.力度.指尖接触屏幕的面积等参数. 在写自定义键盘的时候,用到了国内网上的一些代码,出处是 向先人致敬! ...
- hadoop yarn日志分离
根据hdfs的auditlog以及fsimage分析,yarn的日志文件占用了10%-20%的rpc请求以及文件量,这对namenode的性能有比较大的影响,特别是当集群规模越来越大,会影响生产业务. ...