@dgash2201

Как отправить данные с одного устройства на другое зная только MAC адрес?

Здравствуйте! У меня есть 2 платы arduino, у каждой есть wifi-модуль esp32, которые подключены к одному wifi роутеру. Можно ли как-нибудь с одной платы отправить сообщения на другую зная только MAC адрес?
  • Вопрос задан
  • 1025 просмотров
Пригласить эксперта
Ответы на вопрос 5
inoise
@inoise
Solution Architect, AWS Certified, Serverless
Просто так - нет
Ответ написан
@mordo445
Вам нужно найти ip адрес другого устройства. Для правильной, надежной и простой в разработке связи вам нужно использовать ip-адрес. Что бы одно устройство смогло найти ip адрес другого и с ним связаться они должны быть в одном широковещательном сегменте сети. У вас есть варианты:
1. Используйте SSDP. Он возвращает информацию об устройстве, в ответе будет IP адрес. Для дальнейшей коммуникации адреса должны быть из одной подсети.
2. Создайте собственный протокол на основе мультикаст, пусть ваше устройство "слушает" заранее определенную группу, а второе в эту группу вещает. Адреса устройств не важны, сеть не должна блокировать прохождение мультикаст трафика, если не поддерживается IGMP-snooping, устройства будут захламлять сеть своим трафиком.
3. Используйте на устройствах только заранее известные ip адреса. Выход в интернет будет весьма затруднен, не годится для серийных устройств (как и аврдуино,lol).
Я к сожалению не программист-разработчик, так что с кодом не помогу, только с идеями.
Ответ написан
kotomyava
@kotomyava
Системный администратор
Вам нужен mDNS а из MAC можно сделать, при этом, hostname устройства, ну или любой другой уникальный идентификатор по желанию использовать. Благо в esp32 есть поддержка этого протокола.

Можно вообще работать на уровне канальном, а не сетевом, но это будет куда сложнее в реализации и менее стандартно.
Ответ написан
Комментировать
@Zzzz9
В таком случае Wi-Fi - провод, среда передачи эл. сигналов, все зависит от программы, которая передает сообщения, можешь написать свой протокол wifi- 7.0, которому вообще не нужен tcp-ip и прочие адреса.
Ответ написан
Комментировать
nava2002
@nava2002
Инженер
Да можно.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы