udpclient получает трансляцию только локально (c#, Unity) - PullRequest
2 голосов
/ 26 апреля 2020

Я хочу получить 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 ничего не получает - и Брандмауэр не спрашивает или скажите мне что-нибудь.

В чем может быть проблема здесь?

1 Ответ

0 голосов
/ 26 апреля 2020

Видимо Windows Защитник по умолчанию блокирует редактор Unity (но не UdpSenderReceiver ).

Мне пришлось разрешить его, приняв редактор Unity в общедоступном c домене

image

Правила для

  • Редактор Unity 2019.3.3f1
  • Редактор Unity 2019.3.4f1

присутствовал и не был изменен.
Я изменил Правило для Unity 2019.2.4f1 Editor, чтобы разрешить доступ из домена publi c (я просто разрешил все домены).

...