C# UDP广播,单次广播后不接收响应

C# UDP广播,单次广播后不接收响应,c#,udpclient,C#,Udpclient,当前正在尝试通过udp访问网络上的设备。sendAsync工作正常,但在接收时我只返回一条消息。我相信返回的消息是对发送的消息的响应,但在wireshark中查看的所有正确响应的设备都不会进入应用程序。不确定我是否缺少一些防火墙设置,或者接收器不在正确的NIC上,但尝试了各种选项并直接绑定到我的计算机的IPAddress static async Task Main(字符串[]args) { wait Task.Factory.StartNew(()=>StartListener()); //给

当前正在尝试通过udp访问网络上的设备。sendAsync工作正常,但在接收时我只返回一条消息。我相信返回的消息是对发送的消息的响应,但在wireshark中查看的所有正确响应的设备都不会进入应用程序。不确定我是否缺少一些防火墙设置,或者接收器不在正确的NIC上,但尝试了各种选项并直接绑定到我的计算机的IPAddress

static async Task Main(字符串[]args)
{
wait Task.Factory.StartNew(()=>StartListener());
//给线程时间开始侦听
睡眠(1000);
var端点=新的IPEndPoint(IPAddress.Broadcast,56700);
var sender=new UdpClient();
sender.Client.Bind(新的IPEndPoint(新的UdpConnector(NetworkInterfaceType.Wireless80211,AddressFamily.InterNetwork)。GetActiveIPAddress(null.FirstOrDefault(),56700));//确保它们位于正确的NIC上
sender.Client.Blocking=false;
sender.DontFragment=true;
sender.Client.EnableBroadcast=true;
sender.Client.SetSocketOption(SocketOptionLevel.Socket,SocketOptionName.ReuseAddress,true);
sender.Connect(端点);
var msg=新字节[]{0x24、0x00、0x00、0x34、0x7B、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x01、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x02、0x00、0x00、0x00、0x00、0x00};
wait sender.SendAsync(msg,msg.Length);
Console.WriteLine(“发送到广播地址的消息”);
Console.ReadKey();
}
专用常量int端口=56700;
专用静态异步任务StartListener()
{
UdpClient UdpClient=新的UdpClient();
IPEndPoint组EP=新IPEndPoint(IPAddress.Any,0);
//udpClient.Client.Bind(groupEP);
尝试
{
while(true)
{
Console.WriteLine(“等待广播”);
var bytes=await udpClient.ReceiveAsync();
WriteLine(“从{0}:\n{1}\n收到广播”,
bytes.RemoteEndPoint.ToString(),
Encoding.ASCII.GetString(bytes.Buffer,0,bytes.Buffer.Length));
}
}
捕获(例外e)
{
Console.WriteLine(如ToString());
}
最后
{
udpClient.Close();
}
}
}

绑定调用已被注释掉。

这里是有关此主题的Microsoft文档的链接。可能对您有所帮助:

显然,这对于网络上的应用程序或设备的实现来说是非常具体的,但我希望我能得到一些实质性的进展。