Я хочу получить UDP-сообщение, которое было передано на 255.255.255.255 с UdpClient
в Unity. Но какую бы комбинацию настроек я ни пробовал, он получает сообщение, только если оно было отправлено с localhost. Я попробовал встроенный пример кода из этих ресурсов, не работал:
I'm Выполнение кода ниже задачи.
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})");
}
}
Я использовал несколько закомментированных строк в комбинации.
- Когда я отправляю что-то из одного и того же приложения на номер 255.255.255.255 с другой
UdpClient
на порту 9000, он работает, как и ожидалось. - Когда я отправляю что-либо с любой другой машины в сети на 255.255.255.255
- , любая машина в сети получает это (проверка с помощью PacketSender на устройствах osx)
- На машине windows, на которой я разрабатываю это приложение, сообщение получено UdpSenderReceiver
- Но udpClient изнутри Unity ничего не получает - и Брандмауэр не спрашивает или скажите мне что-нибудь.
В чем может быть проблема здесь?