Перейти к содержанию
    

ESP32: как разделить интерфейсы WiFi и Ethernet для UDP (arduino)

Суть вопроса в следующем:
Одновременно активны оба интерфейса (как WiFi, так и Ethernet).
На оба приходят UDP-пакеты, для обработки запущен UDP-сервер из библиотеки WiFiUDP:

WiFiUDP Udp;

Udp.beginMulticast(multicastIP, multicastPort);


Для приема вызывается функция
uint16_t packetSize = Udp.parsePacket();
и затем 
Udp.read(...)

Пакет принимается правильно.

Но проблема в том, что сервер не привязан к какому-то интерфейсу, и я не знаю, пришел пакет по WiFi или по Ethernet. А ответить мне нужно по тому интерфейсу, откуда получен пакет.

Поэтому у меня такие вопросы: 
1. Как можно узнать по какому интерфейсу пришел пакет?
2. Как выбрать интерфейс для отправки? (Сейчас отправку выполняю функцией Udp.write(...) ) 
3. Может есть библиотека, позволяющая выбирать интерфейс для сервера/клиента
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 часов назад, vvk123 сказал:

Но проблема в том, что сервер не привязан к какому-то интерфейсу, и я не знаю, пришел пакет по WiFi или по Ethernet.

Как это так? По какому интерфейсу пришел запрос, по такому сервер и отдаст...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

21 минуту назад, mantech сказал:

По какому интерфейсу пришел запрос, по такому сервер и отдаст...

А как он догадается, что это ответ именно на этот запрос? UDP же...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а таблица роктинга для чего ? как прописано - так и будет отправлять.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 часов назад, vvk123 сказал:

1. Как можно узнать по какому интерфейсу пришел пакет?

Каждому сетевому интерфейсу должен быть назначен свой уникальный MAC-адрес. Видимо в свойствах вашего UDP-кадра также следует искать целевой MAC и определять по нему.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...