无法广播 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;
我正在尝试创建一个使用 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;