Описание
Метод объекта EthernetUDP возвращает количество принятых байт (символов), доступных для считывания из буфера.
Этот метод можно вызывать только после вызова метода parsePacket().
Функция available() является наследником вспомогательного класса Stream
Синтаксис
Udp.available();
Параметры
Udp - объект класса EthernetUDP
Возвращаемые значения
количество байт, доступных для считывания.
Пример
#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);
}
}
Библиотека Ethernet
Справочник
Материалы взяты с официального сайта проекта Arduino и представлены по лицензии Creative Commons Attribution-ShareAlike 3.0 License.
Источник: http://arduino.cc/en/Reference/EthernetUDPAvailable |