UdpClient无法在局域网中发送UDP广播包的解决办法
2012-12-07 09:12
441 查看
问题描述:
在XP或者Win7上面没有办法发送UDP广播报,发送的代码如下所示,应该没有问题。
问题分析:
1、广播报是否可以发送出去
--我使用抓包工具,iptool。没有抓到我想要的数据包。但是可以收到别人发过来的广播包。(如下图)
图1 抓包
2、是否与特定的电脑的配置有关
--我换了一台电脑,再抓包。发现这次可以抓到我想要的广播包了,也可以正常接收了。这条电脑是我们局域网内的服务器,一开始怀疑是不是因为防火墙的问题,后面把防火墙都关闭了,但是还是发现不行。后面,就想可能是网卡胚子的问题,打开不能发送广播包的电脑和可以发送广播报的主机对比一下,发现不能发送广播报的主机上都有安装虚拟机,也有虚拟网卡,尝试着将所有的虚拟网卡关闭,(如图2)然后再进行测试,终于都正常了,无论是Win7还是Xp。
图2 禁用虚拟网卡
在XP或者Win7上面没有办法发送UDP广播报,发送的代码如下所示,应该没有问题。
/// <summary> /// 发送消息 /// </summary> /// <param name="strDataToSend">要发送的字符串</param> /// <returns>发送成功与否的标识</returns> public bool SendMsg(string strDataToSend) { if (string.IsNullOrEmpty(strDataToSend)) return false; UdpClient myUdpClient = new UdpClient(); try { //让其自动提供子网中的IP广播地址 IPEndPoint iep = new IPEndPoint(IPAddress.Broadcast, this.netInfo.SendPort); //将发送内容转换为字节数组 byte[] bytes = Encoding.UTF8.GetBytes(strDataToSend); //向子网发送信息 myUdpClient.Send(bytes, bytes.Length, iep); if (DataSended != null) { DataSended(Instance, new SendEventArgs(strDataToSend)); } } catch (Exception err) { throw err; } finally { myUdpClient.Close(); } return false; }
问题分析:
1、广播报是否可以发送出去
--我使用抓包工具,iptool。没有抓到我想要的数据包。但是可以收到别人发过来的广播包。(如下图)
图1 抓包
2、是否与特定的电脑的配置有关
--我换了一台电脑,再抓包。发现这次可以抓到我想要的广播包了,也可以正常接收了。这条电脑是我们局域网内的服务器,一开始怀疑是不是因为防火墙的问题,后面把防火墙都关闭了,但是还是发现不行。后面,就想可能是网卡胚子的问题,打开不能发送广播包的电脑和可以发送广播报的主机对比一下,发现不能发送广播报的主机上都有安装虚拟机,也有虚拟网卡,尝试着将所有的虚拟网卡关闭,(如图2)然后再进行测试,终于都正常了,无论是Win7还是Xp。
图2 禁用虚拟网卡
相关文章推荐
- XAMPP服务器在局域网只能本机访问且无法用IP访问的解决办法 (转)
- qt udp程序,在Windows中可以正常收取数据,到了Ubuntu中无法正常收取数据问题解决办法
- Win7 无法访问局域网内其他电脑以及共享的文件解决办法,以下错误代码:0x80004005解决办法
- Linux下使用RAW SOCKET原始套接字构造UDP原始数据帧广播到局域网,在局域网的另一台计算机上显示UDP发送的信息
- MaCfee导致Asp.net/Jmail无法发送邮件的解决办法
- C#使用AseClient连接Sybase报无法加载sybdrvado11.dll的解决办法
- Windows7 无法连接局域网的故障解决办法之一
- Linux下使用RAW SOCKET原始套接字构造UDP原始数据帧广播到局域网,在局域网的另一台计算机上显示UDP发送的信息
- 局域网SqlServer无法访问的一种解决办法
- android4.0后无法向Servlet发送请求解决办法
- 访问局域网某台电脑时提示:无法访问,你可能没有权限使用网络资源.的解决办法
- ubuntu安装VNCserver,用client端连接,无法显示桌面的解决办法
- Contact Form 7及WordPress无法收取,发送邮件的解决办法
- Win7下无法访问局域网打印机(登录失败:未知的用户名或密码错误)解决办法!
- 利用UDP在局域网中发送广播
- UdpClient 发送广播报文,部署在两个电脑,一个发出去,一个不成功
- Contact Form 7及WordPress无法收取,发送邮件的解决办法
- 示例C#利用UdpClient发送广播消息
- phpMailer在CentOS 6.5下无法发送邮件的解决办法