我想接收一条UDP消息,该消息已在Unity中通过UdpClient
广播到255.255.255.255。
但是无论我尝试哪种设置组合,它都只会收到一条消息(如果它是从本地主机发送的)。
我已经尝试从这些资源中获取适合的示例代码,但没有用:
我正在任务下运行代码。
private void Listen()
{
udpClient = new UdpClient(9000);
//udpClient.Client.Bind(new IPEndPoint(IPAddress.Any, 9000));
//udpClient.EnableBroadcast = true;
//udpClient.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
//udpClient.ExclusiveAddressUse = false;
//broadcastAddress = new IPEndPoint(IPAddress.Any, 9000);
//udpClient.Client.Bind(broadcastAddress);
//udpClient.Connect(broadcastAddress);
//var from = new IPEndPoint(IPAddress.Any, 9000);
var from = new IPEndPoint(0, 0);
while (true)
{
var receive = udpClient.Receive(ref from);
var msg = Encoding.UTF8.GetString(receive);
Debug.Log($"Received message \"{msg}\"");
Debug.Log($"from {from} ({from.Address})");
}
}
我将几个注释行组合使用。
UdpClient
向255.255.255.255发送消息时,它会按预期工作。这里可能是什么问题?
答案 0 :(得分:0)
显然,Windows Defender默认情况下会阻止Unity编辑器(但不会阻止 UdpSenderReceiver )。
我必须通过在公共领域接受Unity编辑器来解决此问题
规则
已存在且未修改。
我修改了Unity 2019.2.4f1编辑器规则,以允许从公共域进行访问(我只是允许所有域)。