ESP8266:Прошивки/Arduino/Библиотеки/Библиотека ESP8266WiFi/Класс UDP: различия между версиями
Материал из Онлайн справочника
Myagkij (обсуждение | вклад) Нет описания правки |
Нет описания правки |
||
Строка 33: | Строка 33: | ||
Класс WiFiUDP поддерживает отправку и получение многоадресных пакетов, но для этого [[ESP8266]] долженбыть переключен в стационарный режим. Чтобы отправлять многоадресные пакеты, замените | Класс WiFiUDP поддерживает отправку и получение многоадресных пакетов, но для этого [[ESP8266]] долженбыть переключен в стационарный режим. Чтобы отправлять многоадресные пакеты, замените | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
udp.beginPacket(addr, port) | udp.beginPacket(addr, port) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 39: | Строка 39: | ||
на | на | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
udp.beginPacketMulticast(addr, port, WiFi.localIP()) | udp.beginPacketMulticast(addr, port, WiFi.localIP()) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 45: | Строка 45: | ||
Чтобы прослушивать многоадресные пакеты, замените | Чтобы прослушивать многоадресные пакеты, замените | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
udp.begin(port) | udp.begin(port) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 51: | Строка 51: | ||
на | на | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
udp.beginMulticast(WiFi.localIP(), multicast_ip_addr, port) | udp.beginMulticast(WiFi.localIP(), multicast_ip_addr, port) | ||
</syntaxhighlight> | </syntaxhighlight> |
Версия от 19:55, 23 мая 2023
Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.
Черновик |
Класс UDP в библиотеке ESP8266WiFi[1]
Во-первых, класс WiFiUDP библиотеки ESP8266WiFi состоит из функций, имеющихся в классе WiFiUDP WiFi-библиотеки Arduino.
- begin()
- available()
- beginPacket()
- endPacket()
- write()
- parsePacket()
- peek()
- read()
- flush()
- stop()
- remoteIP()
- remotePort()
Функции и свойства, описанные ниже, разработаны специально для ESP8266. В официальной документации WiFi-библиотеки Arduino их нет.
Многоадресный UDP
- uint8_t beginMulticast (IPAddress interfaceAddr, IPAddress multicast, uint16_t port)
- virtual int beginPacketMulticast (IPAddress multicastAddress, uint16_t port, IPAddress interfaceAddress, int ttl=1)
- IPAddress destinationIP ()
- uint16_t localPort ()
Класс WiFiUDP поддерживает отправку и получение многоадресных пакетов, но для этого ESP8266 долженбыть переключен в стационарный режим. Чтобы отправлять многоадресные пакеты, замените
udp.beginPacket(addr, port)
на
udp.beginPacketMulticast(addr, port, WiFi.localIP())
Чтобы прослушивать многоадресные пакеты, замените
udp.begin(port)
на
udp.beginMulticast(WiFi.localIP(), multicast_ip_addr, port)
Кроме того, функция udp.destinationIP() позволяет узнать, каким был полученный пакет – многоадресным или одноадресным.
Примеры использования функций класса WiFiUDP ищите по [ссылка этой ссылке].