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

 

available()

Описание

Если клиент, подключенный к серверу, имеет непрочитанные данные, то функция возвращает описывающий его объект Client. Соединение с клиентом сохраняется даже в случае выхода объекта Client из области видимости; для закрытия соединения необходимо использовать client.stop().

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

Синтаксис

server.available();

Параметры

нет

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

Объект Client; если клиентов, имеющих непрочитанные данные, нет, то возвращаемый объект будет эквивалентен false (см. пример с оператором if ниже)

Пример

#include <Ethernet.h>

// конфигурация сети.  Шлюз и маска подсети - не обязательные параметры.

// MAC-адрес платы расширения (задан аппаратно):
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };  
//IP-адрес платы расширения:
byte ip[] = { 10, 0, 0, 177 };    
//адрес шлюза маршрутизатора:
byte gateway[] = { 10, 0, 0, 1 };
// маска подсети:
byte subnet[] = { 255, 255, 0, 0 };

// для telnet-соединений порт по умолчанию - 23
EthernetServer server = EthernetServer(23);

void setup()
{
  // инициализация Ethernet-устройства
  Ethernet.begin(mac, ip, gateway, subnet);

  // ожидаем соединения клиентов
  server.begin();
}

void loop()
{
  // при подсоединении клиента появляются непрочитанные байты, доступные для чтения:
  EthernetClient client = server.available();
  if (client == true) {
    // считываем байты, поступившие от клиента, и передаем их обратно
    // всем клиентам, подсоединенным к серверу:
    server.write(client.read());
  }
}