Вернуться к библиотеке Ethernet

 

UDP.read()

Описание

Осуществляет считывание UDP-данных в указанный буфер. Если параметры функции не заданы, то она возвращает очередной принятый символ.

Эту функцию можно вызывать только после вызова UDP.parsePacket().

Синтаксис

UDP.read();
UDP.read(packetBuffer, MaxSize);

Параметры

packetBuffer: буфер для хранения входящих пакетов (char)

MaxSize: максимальный размер буфера (int)

Возвращаемые значения

char: возвращает количество символов, записанных в буфер, либо очередной принятый символ.

Пример

#include <SPI.h>
#include <Ethernet.h>
#include <EthernetUdp.h>


// Ниже укажите MAC-адрес и IP-адрес вашего контроллера .
// IP-адрес будет зависеть от настроек вашей локальной сети:
byte mac[] = {  
  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };

IPAddress ip(192, 168, 1, 177);

unsigned int localPort = 8888;      // номер локального порта для прослушивания

// Создание экземпляра класса EthernetUDP для отправки и получения UDP-пакетов
EthernetUDP Udp;

char packetBuffer[UDP_TX_PACKET_MAX_SIZE]; //буфер для хранения входящих пакетов

void setup() {
  // запуск Ethernet и UDP:
  Ethernet.begin(mac,ip);
  Udp.begin(localPort);

}

void loop() {

  int packetSize = Udp.parsePacket();
  if(packetSize)
  {
    Serial.print("Received packet of size ");
    Serial.println(packetSize);
    Serial.print("From ");
    IPAddress remote = Udp.remoteIP();
    for (int i =0; i < 4; i++)
    {
      Serial.print(remote[i], DEC);
      if (i < 3)
      {
        Serial.print(".");
      }
    }
    Serial.print(", port ");
    Serial.println(Udp.remotePort());

    // считываем пакет в буфер packetBufffer
    Udp.read(packetBuffer,UDP_TX_PACKET_MAX_SIZE);
    Serial.println("Contents:");
    Serial.println(packetBuffer);
}
}