[К началу] | [Библиотека Ethernet]
Класс EthernetClient служит основой для реализации собственного сетевого клиента. Также экземпляры этого класса связаны с клиентами объекта класса EthernetServer. Этот класс наследует от класса Client и реализует такие методы как begin(), write() и available(). Рассмотрим их подробней.
Конструктор экземпляра класса EthernetClient представлен в двух экземплярах:
EthernetClient();
EthernetClient(uint8_t sock);
Во втором случае на вход конструктору подаётся номер сокета sock, который является целым числом от 0 до MAX_SOCK_NUM, который в нашем случае равен четырём. Если номер сокета не задан, то он назначается равным MAX_SOCK_NUM.
Метод connect() ...
Метод available() возвращает количество байт, доступных для чтения из сервера, к которому он подключён.
virtual int available();
Метод write() ...
Метод print() унаследован от класса Print и подробно описывается в соответствующей главе. Этот метод позволяет отправлять серверу данные различных типов: строки, символы, целые числа различной разрядности и числа с плавающей точкой, а также объекты с интерфейсом Printable.
Метод println() также унаследован от класса Print и делает всё тоже, что и метод print(),
только добавляет в конец данных символ \n
. Метод реализован как обёртка вокруг print().
В некоторых случаях целесообразнее с точки зрения производительности использовать метод
print() вместо println(), просто добавляя в конец данных символ \n
.
Ниже приведён пример простейшего сервера, который слушает порт 23 (telnet), читает, что ему передаёт клиент, и возвращает ему это обратно.
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192, 168, 1, 10 };
EthernetServer server = EthernetServer(23);
void setup() {
Ethernet.begin(mac, ip);
server.begin();
}
void loop() {
EthernetClient client = server.available();
if (client == true) {
server.write(client.read());
}
}
[К началу] | [Библиотека Ethernet]
(c) 2015, Симоненко Евгений А. easimonenko@mail.ru