• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

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

vvk

New member
Суть вопроса в следующем:
Одновременно активны оба интерфейса (как 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. Может есть библиотека, позволяющая выбирать интерфейс для сервера/клиента
 

Atom

Member
В АРП есть поле с макадресом. Два разных интерфейса - два разныз мак.
 
Сверху Снизу