Arduino Function: Server.available


This function gets a client that is connected to the server and has data available for reading. The connection persists when the returned client object goes out of scope. This function can be stopped manually by using client.stop(). available() inherits from the Stream utility class.




 It returns a Client object. If no Client has data available for reading, this object will evaluate to false in an if-statement (as shown in the example below) *Client object


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

// the media access control (ethernet hardware) address for the shield:
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };  
//the IP address for the shield:
byte ip[] = { 10, 0, 0, 177 };    
// the router's gateway address:
byte gateway[] = { 10, 0, 0, 1 };
// the subnet:
byte subnet[] = { 255, 255, 0, 0 };

// telnet defaults to port 23
EthernetServer server = EthernetServer(23);

void setup()
  // initialize the ethernet device
  Ethernet.begin(mac, ip, gateway, subnet);

  // start listening for clients

void loop()
  // if an incoming client connects, there will be bytes available to read:
  EthernetClient client = server.available();
  if (client) {
    // read bytes from the incoming client and write them back
    // to any clients connected to the server:

Based on the reference originally written by Arduino Community, and