Отправьте многоадресную рассылку со всех сетевых адаптеров на 239.255.255.253 (порт: 427) и получите сообщения C#

Я записал последовательность с помощью Wireshark на одном конкретном сетевом адаптере.

И там я увидел исходящую многоадресную рассылку с одного из моих сетевых адаптеров на 239.255.255.253. За этим следует ответ от «устройства» с определенным IP-адресом.

Что у меня уже есть:

public List<IPAddress> GetLocalNetworkInterfaces()
{
    localNetworkInterfaces = new List<IPAddress>();

    foreach (NetworkInterface nic in NetworkInterface.GetAllNetworkInterfaces())
    {
        foreach (var unicastIp in nic.GetIPProperties().UnicastAddresses)
        {
            if (nic.OperationalStatus == OperationalStatus.Up && unicastIp.Address.AddressFamily == AddressFamily.InterNetwork
                && !IPAddress.IsLoopback(unicastIp.Address))
            {
                localNetworkInterfaces.Add(unicastIp.Address);

            }
        }
    }

    return localNetworkInterfaces;
}


public void SendMultiCast(List<IPAddress> iPAddresses, int port)
{
    responseOfAvailableVehicles = new List<string>();
    string availableVehicle;

    if (iPAddresses.Count != 0)
    {
        try
        {
            foreach (IPAddress iPAddress in iPAddresses)
            {
                IPAddress address = iPAddress;
                byte[] response;
                long longFromIP = 4026531837; //Is 239.255.255.253
                port = 427;


                UdpClient udpClient = new UdpClient(new IPEndPoint(address, 0));
                udpClient.Client.ReceiveTimeout = 3000;

                // Here start Multicast
                // And receive response
                var endpoint = new IPEndPoint(longFromIP, port);
                udpClient.EnableBroadcast = true;

                udpClient.Send(DiscoveryPayload, DiscoveryPayload.Length, endpoint);
                response = udpClient.Receive(ref endpoint);

            }

        }
        catch (Exception ex)
        {

        }

    }
}

Честно говоря, я не уверен, правильный ли подход вообще или я полностью ошибаюсь.

Как я могу также отправить многоадресную рассылку с C# и получить ответ?

Маршруты и серверы обычно не пересылают сообщения BroadCast, если вы не измените настройку устройства. Multicast - это тип сообщения UDP BroadCast. Возможно, вам потребуется заменить устройство на простой концентратор, который не блокирует трафик.

jdweng 05.04.2021 11:35

Предположим, что маршруты и серверы пересылают широковещательное сообщение. Как продолжить?

10minQuestion 05.04.2021 11:39

Теперь я расширил все с помощью udpClient.Send. Но именно здесь я получаю исключение «Операция сокета связана с недоступной сетью».

10minQuestion 05.04.2021 11:44
var endpoint = new IPEndPoint(IPAddress.Broadcast, port);
Alex F 05.04.2021 12:01

@AlexF Но я хочу отправлять его не на широковещательный адрес, а только на 239.255.255.253. Могу ли я использовать широковещательный адрес?

10minQuestion 05.04.2021 12:09

Это не многоадресная рассылка, вы отправляете ее на один конкретный IP-адрес.

fredrik 05.04.2021 14:45
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
6
26
0

Другие вопросы по теме