UdpClient无法在局域网中发送UDP广播包的解决办法

简介:

问题描述:

在XP或者Win7上面没有办法发送UDP广播报,发送的代码如下所示,应该没有问题。

复制代码
 1         /// <summary>
 2         /// 发送消息
 3         /// </summary>
 4         /// <param name="strDataToSend">要发送的字符串</param>
 5         /// <returns>发送成功与否的标识</returns>
 6         public bool SendMsg(string strDataToSend)
 7         {
 8             if (string.IsNullOrEmpty(strDataToSend)) return false;
 9 
10             UdpClient myUdpClient = new UdpClient();
11             try
12             {
13                 //让其自动提供子网中的IP广播地址
14                 IPEndPoint iep = new IPEndPoint(IPAddress.Broadcast, this.netInfo.SendPort);
15                 //将发送内容转换为字节数组
16                 byte[] bytes = Encoding.UTF8.GetBytes(strDataToSend);
17                 //向子网发送信息
18                 myUdpClient.Send(bytes, bytes.Length, iep);
19                 if (DataSended != null)
20                 {
21 
22                     DataSended(Instance, new SendEventArgs(strDataToSend));
23                 }
24 
25             }
26             catch (Exception err)
27             {
28                 throw err;
29             }
30             finally
31             {
32                 myUdpClient.Close();
33             }
34 
35             return false;
36         }
复制代码

问题分析:
1、广播报是否可以发送出去

--我使用抓包工具,iptool。没有抓到我想要的数据包。但是可以收到别人发过来的广播包。(如下图)

                                                                  图1 抓包

2、是否与特定的电脑的配置有关

--我换了一台电脑,再抓包。发现这次可以抓到我想要的广播包了,也可以正常接收了。这条电脑是我们局域网内的服务器,一开始怀疑是不是因为防火墙的问题,后面把防火墙都关闭了,但是还是发现不行。后面,就想可能是网卡胚子的问题,打开不能发送广播包的电脑和可以发送广播报的主机对比一下,发现不能发送广播报的主机上都有安装虚拟机,也有虚拟网卡,尝试着将所有的虚拟网卡关闭,(如图2)然后再进行测试,终于都正常了,无论是Win7还是Xp。

                                           图2 禁用虚拟网卡

 


作者:kissazi2 
出处:http://www.cnblogs.com/kissazi2/ 
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

转载:http://www.cnblogs.com/kissazi2/archive/2012/12/07/2806533.html

目录
相关文章
|
SQL 安全 算法
网络安全与信息安全的全面解析:应对漏洞、加密技术及提升安全意识的策略
本文深入探讨了网络安全和信息安全的重要性,详细分析了常见的网络安全漏洞以及其利用方式,介绍了当前流行的加密技术及其应用,并强调了培养良好安全意识的必要性。通过综合运用这些策略,可以有效提升个人和企业的网络安全防护水平。
|
边缘计算 网络协议 网络架构
DoIP看这篇就够了,吐血整理
DoIP看这篇就够了,吐血整理
DoIP看这篇就够了,吐血整理
|
传感器 Linux
在Linux中使用libmodbus库进行Modbus RTU主从机通信
Modbus RTU是一种常见的工业通信协议,用于在自动化系统中传输数据。libmodbus是一个流行的C库,用于在Linux系统上实现Modbus通信。本文将介绍如何使用libmodbus库在Linux上创建Modbus RTU主从机通信的示例代码。
6325 0
|
26天前
|
安全 Linux 网络安全
Linux下搭建L2TP/IPsec VPN服务(手把手教你配置安全远程连接)
本教程详细介绍如何在Ubuntu 22.04上搭建L2TP/IPsec VPN服务器,涵盖软件安装、IPsec与xl2tpd配置、用户添加、防火墙设置及连接测试,适合初学者快速掌握Linux下安全的VPN搭建方法。
|
数据安全/隐私保护
【图文教程】de4dot实战字符串解密(演示:hishop微分销系统)
原文:【图文教程】de4dot实战字符串解密(演示:hishop微分销系统) 前些日子,公司需求开发一个微分销系统,于是找来hishop微分销系统想借鉴一下,没想到里面各种加密,就连字符串也都加密了。
2509 0
|
分布式计算 Java Hadoop
MapReduce编程(一) Intellij Idea配置MapReduce编程环境
介绍如何在Intellij Idea中通过创建maven工程配置MapReduce的编程环境。 一、软件环境 我使用的软件版本如下: Intellij Idea 2017.1 Maven 3.3.9 Hadoop伪分布式环境( 安装教程可参考这里) 二、创建maven工程 打开Idea,file->new->Project,左侧面板选择maven工程。
2886 0
|
机器学习/深度学习 边缘计算 负载均衡
深入理解微服务架构中的服务发现机制
在分布式系统的微服务架构中,服务发现是确保各服务组件高效通信的关键机制。本文将探讨服务发现的基本原理、常用工具与实践方法,并分析其在现代后端系统中的应用案例。
436 28
|
NoSQL Linux Redis
Linux添加自定义服务(service文件)
Linux添加自定义服务(service文件)
5637 0
|
Ubuntu 安全 网络协议