WiFiClient

Класс WiFiClient

Класс WiFiClient используется для подключения, отправки и получения данных от серверов и к серверам.

WiFiClient

Описание

WiFiClient — это базовый класс для всех вызовов на основе WiFi-клиента. Он не вызывается напрямую, а используется каждый раз, когда вы вызываете функцию, которая на него опирается.

WiFiClient (конструктор)

Описание

Создаёт клиент, который может подключаться к указанному IP-адресу и порту в интернете, определённым в client.connect().

Синтаксис

WiFiClient client;

Параметры

нет

Пример

#include <SPI.h>
#include <WiFi.h>

char ssid[] = "myNetwork";          //  your network SSID (name)
char pass[] = "myPassword";   // your network password

int status = WL_IDLE_STATUS;
IPAddress server(74,125,115,105);  // Google

// Initialize the client library
WiFiClient client;

void setup() {
  Serial.begin(9600);
  Serial.println("Attempting to connect to WPA network...");
  Serial.print("SSID: ");
  Serial.println(ssid);

  status = WiFi.begin(ssid, pass);
  if ( status != WL_CONNECTED) {
    Serial.println("Couldn't get a wifi connection");
    // don't do anything else:
    while(true);
  }
  else {
    Serial.println("Connected to wifi");
    Serial.println("\nStarting connection...");
    // if you get a connection, report back via serial:
    if (client.connect(server, 80)) {
      Serial.println("connected");
      // Make a HTTP request:
      client.println("GET /search?q=arduino HTTP/1.0");
      client.println();
    }
  }
}

void loop() {

}

client.connected()

Описание

Определяет, подключён ли клиент. Обратите внимание, что клиент считается подключённым, если соединение было закрыто, но ещё есть непрочитанные данные.

Синтаксис

client.connected()

Параметры

нет

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

Возвращает true, если клиент подключён, false в противном случае.

Пример

#include <SPI.h>
#include <WiFi.h>

char ssid[] = "myNetwork";          //  your network SSID (name)
char pass[] = "myPassword";   // your network password

int status = WL_IDLE_STATUS;
IPAddress server(74,125,115,105);  // Google

// Initialize the client library
WiFiClient client;

void setup() {
  Serial.begin(9600);
  Serial.println("Attempting to connect to WPA network...");
  Serial.print("SSID: ");
  Serial.println(ssid);

  status = WiFi.begin(ssid, pass);
  if ( status != WL_CONNECTED) {
    Serial.println("Couldn't get a wifi connection");
    // don't do anything else:
    while(true);
  }
  else {
    Serial.println("Connected to wifi");
    Serial.println("\nStarting connection...");
    // if you get a connection, report back via serial:
    if (client.connect(server, 80)) {
      Serial.println("connected");
      // Make a HTTP request:
      client.println("GET /search?q=arduino HTTP/1.0");
      client.println();
    }
  }
}

void loop() {
   if (client.available()) {
    char c = client.read();
    Serial.print(c);
  }

  if (!client.connected()) {
    Serial.println();
    Serial.println("disconnecting.");
    client.stop();
    for(;;)
      ;
  }
}

client.connect()

Описание

Подключается к IP-адресу и порту, указанным в конструкторе. Возвращаемое значение указывает на успех или неудачу. connect() также поддерживает DNS-поиск при использовании доменного имени (например: google.com).

Синтаксис

client.connect(ip, port)
client.connect(URL, port)

Параметры

  • ip: IP-адрес, к которому подключится клиент (массив из 4 байт)

  • URL: доменное имя, к которому подключится клиент (строка, например: «arduino.cc»)

  • port: порт, к которому подключится клиент (int)

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

Возвращает true, если подключение успешно, false в противном случае.

Пример

#include <SPI.h>
#include <WiFi.h>

char ssid[] = "myNetwork";          //  your network SSID (name)
char pass[] = "myPassword";   // your network password

int status = WL_IDLE_STATUS;
char servername[]="google.com";  // remote server we will connect to

WiFiClient client;

void setup() {
  Serial.begin(9600);
  Serial.println("Attempting to connect to WPA network...");
  Serial.print("SSID: ");
  Serial.println(ssid);

  status = WiFi.begin(ssid, pass);
  if ( status != WL_CONNECTED) {
    Serial.println("Couldn't get a wifi connection");
    // don't do anything else:
    while(true);
  }
  else {
    Serial.println("Connected to wifi");
    Serial.println("\nStarting connection...");
    // if you get a connection, report back via serial:
    if (client.connect(servername, 80)) {
      Serial.println("connected");
      // Make a HTTP request:
      client.println("GET /search?q=arduino HTTP/1.0");
      client.println();
    }
  }
}

void loop() {

}

client.write()

Описание

Записывает данные на сервер, к которому подключён клиент.

Синтаксис

client.write(data)

Параметры

  • data: байт или символ для записи.

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

byte: количество записанных символов. Чтение этого значения не обязательно.

client.print()

Описание

Выводит данные на сервер, к которому подключён клиент. Числа выводятся как последовательность цифр, каждая из которых является ASCII-символом (например, число 123 отправляется как три символа „1“, „2“, „3“).

Синтаксис

client.print(data)
client.print(data, BASE)

Параметры

  • data: данные для вывода (char, byte, int, long или string)

  • BASE (необязательный): система счисления для вывода чисел: DEC для десятичной (основание 10), OCT для восьмеричной (основание 8), HEX для шестнадцатеричной (основание 16).

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

byte: количество записанных байтов. Чтение этого значения не обязательно.

client.println()

Описание

Выводит данные, за которыми следуют символ возврата каретки и символ новой строки, на сервер, к которому подключён клиент. Числа выводятся как последовательность цифр, каждая из которых является ASCII-символом (например, число 123 отправляется как три символа „1“, „2“, „3“).

Синтаксис

client.println()
client.println(data)
client.print(data, BASE)

Параметры

  • data (необязательный): данные для вывода (char, byte, int, long или string)

  • BASE (необязательный): система счисления для вывода чисел: DEC для десятичной (основание 10), OCT для восьмеричной (основание 8), HEX для шестнадцатеричной (основание 16).

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

byte: количество записанных байтов. Чтение этого значения не обязательно.

client.available()

Описание

Возвращает количество байтов, доступных для чтения (то есть объём данных, записанных клиенту сервером, к которому он подключён).

available() наследуется от служебного класса Stream.

Синтаксис

client.available()

Параметры

нет

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

Количество доступных байтов.

Пример

#include <SPI.h>
#include <WiFi.h>

char ssid[] = "myNetwork";          //  your network SSID (name)
char pass[] = "myPassword";   // your network password

int status = WL_IDLE_STATUS;
char servername[]="google.com";  // Google

WiFiClient client;

void setup() {
  Serial.begin(9600);
  Serial.println("Attempting to connect to WPA network...");
  Serial.print("SSID: ");
  Serial.println(ssid);

  status = WiFi.begin(ssid, pass);
  if ( status != WL_CONNECTED) {
    Serial.println("Couldn't get a wifi connection");
    // don't do anything else:
    while(true);
  }
  else {
    Serial.println("Connected to wifi");
    Serial.println("\nStarting connection...");
    // if you get a connection, report back via serial:
    if (client.connect(servername, 80)) {
      Serial.println("connected");
      // Make a HTTP request:
      client.println("GET /search?q=arduino HTTP/1.0");
      client.println();
    }
  }
}

void loop() {
  // if there are incoming bytes available
  // from the server, read them and print them:
  if (client.available()) {
    char c = client.read();
    Serial.print(c);
  }

  // if the server's disconnected, stop the client:
  if (!client.connected()) {
    Serial.println();
    Serial.println("disconnecting.");
    client.stop();

    // do nothing forevermore:
    for(;;)
      ;
  }
}

client.read()

Считывает следующий байт, полученный от сервера, к которому подключён клиент (после последнего вызова read()).

read() наследуется от служебного класса Stream.

Синтаксис

client.read()

Параметры

нет

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

Следующий байт (или символ), или -1, если ничего не доступно.

client.flush()

Сбрасывает все байты, которые были записаны клиенту, но ещё не прочитаны.

flush() наследуется от служебного класса Stream.

Синтаксис

client.flush()

Параметры

нет

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

нет

client.stop()

Отключение от сервера.

Синтаксис

client.stop()

Параметры

нет

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

нет