电脑收不到UDP广播

    在同一个局域网里本机电脑上无法收到终端UDP的广播,而其他电脑能接收到,可以查看一下自己电脑上是否存在虚拟网卡启动了,如有把他禁用,因为UDP广播的信息会被拦截。

 

 

                              

在C#中创建一个基于UDP广播的简单应用程序,用于在网络中唤醒另一台计算机,你需要做的是首先设置一个发送端和接收端。这里是一个基本的示例,假设你已经有一个UDP套接字,并且知道目标计算机的IP地址: ```csharp using System; using System.Net; using System.Net.Sockets; public class Broadcaster { private const int PORT = 7; // UDP广播端口 private static readonly IPAddress BROADCAST_IP = IPAddress.Broadcast; public static void Main() { try { UdpClient client = new UdpClient(PORT); byte[] data = Encoding.ASCII.GetBytes("Wake Up Message"); // 醒醒的消息 // 发送广播消息到指定IP和端口 IPEndPoint endPoint = new IPEndPoint(BROADCAST_IP, PORT); client.Send(data, data.Length, endPoint); Console.WriteLine($"Broadcast message sent to all hosts on port {PORT}."); Console.ReadLine(); // 等待用户按下回车键,方便观察是否收到回应 } catch (Exception ex) { Console.WriteLine($"Error: {ex.Message}"); } finally { client.Close(); } } } class Receiver : UdpClient { public Receiver(int port) { Client = this; Client.WorkerThreads = 4; // 使用多线程处理数据接收,提高效率 BeginReceive(ReceiveCallback, null); // 开始监听 } private unsafe void ReceiveCallback(IAsyncResult ar) { try { byte[] buffer = new byte[BufferSize]; EndReceive(ar, ref buffer); Console.WriteLine($"Received message from sender: {Encoding.ASCII.GetString(buffer)}"); } catch (Exception ex) { Console.WriteLine($"Error: {ex.Message}"); } } public static int BufferSize => 1024; } ``` 在这个例子中,`Broadcaster`类负责发送广播消息,而`Receiver`类则作为接收端。你可以根据需要启动`Receiver`来监听并处理响应。 注意:由于防火墙限制以及网络安全考虑,UDP广播可能在某些环境中不可用,而且并不适合用于远距离或生产环境中的通信。此外,实际应用中,为了安全性和可靠性,可能会使用更复杂的机制,如心跳包、序列号验证等。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值