Arduino Function: EthernetUDP.available

Description

This function gets the number of bytes (characters) available for reading from the buffer. This is get from data that is already arrived. This function can only be successfully called after UDP.parsePacket(). The function available() inherits from the Stream utility class.

Returns

 The number of bytes available to read

Examples

#include <SPI.h>
#include <Ethernet.h> //If you are using Ethernet Shield 2, use instead <Ethernet2.h>
#include <EthernetUdp.h>

// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network:
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192, 168, 1, 177);

unsigned int localPort = 8888; // local port to listen on

// An EthernetUDP instance to let us send and receive packets over UDP
EthernetUDP Udp;

char packetBuffer[UDP_TX_PACKET_MAX_SIZE]; //buffer to hold incoming packet,

void setup() {
// start the Ethernet and 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());

// read the packet into packetBufffer
Udp.read(packetBuffer,UDP_TX_PACKET_MAX_SIZE);
Serial.println("Contents:");
Serial.println(packetBuffer);
}
}


Based on the reference originally written by Arduino Community,  wiring.org.co and  arduino.cc