无法广播 UDP 消息

Unable to broadcast UDP message

我正在尝试创建一个使用 UDP 广播消息进行通信的 WPF 应用程序。我知道我可以发送消息到255.255.255.255广播消息。

var s = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);

var broadcast = IPAddress.Parse("255.255.255.255");

var buffer = Encoding.ASCII.GetBytes(message.ToString());
var endPoint = new IPEndPoint(broadcast, 11000);

s.SendTo(buffer, endPoint);

但是,我得到 SocketException 和错误消息

An attempt was made to access socket in a way forbidden by its access permission.

它不是 UWP 应用程序,所以不确定哪个权限或如何授予权限?

基于异常,并且缺少任何实际代码,更不用说 minimal, reproducible example,最可能的解释是您未能配置套接字以启用广播消息。

您可以通过以下两种方式之一解决此问题。可以直接调用SetSocketOption()方法,传递SocketOptionName.Broadcast值,和一个true的值:

udpClient.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, true);

或者,您可以设置 EnableBroadcast 属性、which will do that for you:

udpClient.EnableBroadcast = true;