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

 

UDP.available()

Описание

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

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

Функция available() является наследником вспомогательного класса Stream.

Синтаксис

UDP.available();

Параметры

нет

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

количество байт, доступных для считывания.

Пример

#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(Udp.available())
  {
    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);
}
}


Смотрите также