我刚刚使用UdpClient
并注意到设置为UdpClient.EnableBroadcast
至true
或false
没有任何(副作用),我能够播放无论如何:
using (UdpClient client = new UdpClient())
{
byte[] data = Encoding.ASCII.GetBytes("Hello");
while (true)
{
client.Send(data, data.Length, new IPEndPoint(IPAddress.Broadcast, 45678));
Console.WriteLine("sent");
Console.ReadKey();
}
}
The MSDN page对此非常模糊,但如果您使用设置为false
的属性进行广播,则听起来应该会导致异常:
获取或设置一个布尔值,指定UdpClient是否可以 发送或接收广播包。 ... 如果UdpClient允许广播数据包,则为true;否则,错误。默认值为false。
不是一个关键问题,但它让我感到奇怪。这是一个错误还是属性,所以你以后可以参考它,看看你是否打算用它来播放?
答案 0 :(得分:0)
初始化udp套接字时需要启用广播模式,类似于
this.someUdpSocket.EnableBroadcast = true;
this.someUdpSocket.Client.Bind(new IPEndPoint(IPAddress.Any, 0));
新编辑:
以上不起作用,以下代码
this.someUdpSocket.Client.EnableBroadcast = false;
也不能达到目的。至于你的回答“是的,它可以被称为一个错误,或者该属性可能与其他一些背景相关。”
但是如果你想明确地禁用广播,你可以像下面这样做:
this.someUdpSocket.Client.SetSocketOption(SocketOptionLevel.Udp, SocketOptionName.Broadcast, false);
感谢您的动力。