Kiszolgáló (Server) osztály

Az Arduino-hoz a szerver osztály számára dokumentált metódusok

  1. WiFiServer()
  2. begin()
  3. available()
  4. write()
  5. print()
  6. println()

Az ESP8266WiFi könyvtárban az ArduinoWiFiServer osztály valósítja meg az available és az összes-kliensre-írási funkciót az Arduino WiFi könyvtár hivatkozásában leírtak szerint. A PageServer példa bemutatja, hogy az available és az összes-kliensre-írás hogyan működik.

A legtöbb felhasználási esetre az ESP8266WiFi könyvtár alap WiFiServer osztálya megfelelő.

A lentebb leírt módszerek és tulajdonságok az ESP8266-ra vonatkoznak. Az Arduino WiFi könyvtár dokumentációja nem foglalkozik velük. Mielőtt teljes körűen dokumentálnák, olvassa el az alábbi információkat.


accept

Az accept() metódus egy várakozó ügyfélkapcsolatot ad vissza. Az accept() az Arduino Ethernet könyvtárhoz van dokumentálva.


available

A 3.1.0 verzió óta elavult: lásd: accept

Az ESP8266WiFi könyvtárban a WiFiServer osztály available függvénye nem az Arduino WiFi könyvtárhoz dokumentált módon működik. Ugyanúgy működik, mint az accept.


write (minden ügyfélnek írás) nem támogatott

Kérjük, vegye figyelembe, hogy a WiFiServer objektumon az write metódus nincs megvalósítva, és mindig hibát ad vissza. Használja a WiFiServer::accept() metódusból visszaadott WiFiClient objektumot az egyes ügyfelekkel való kommunikációhoz. Ha pontosan ugyanazokat a csomagokat kell elküldenie egy sor kliensnek, akkor az alkalmazásnak listát kell vezetnie a csatlakoztatott ügyfelekről, és ciklusban manuálisan kell elküldeni őket.


setNoDelay


setNoDelay(nodelay)

Ha a nodelay true-ra van állítva, ez a függvény letiltja a Nagle algoritmust.

Ennek az algoritmusnak a célja, hogy csökkentse a hálózaton keresztül küldött kis csomagok TCP/IP-forgalmát azáltal, hogy több kis kimenő üzenetet kombinál, és egyszerre küld el. Az ilyen megközelítés hátránya, hogy hatékonyan késlelteti az egyes üzeneteket, amíg egy elég nagy csomagot nem állítanak össze.

Példa:


server.begin();
server.setNoDelay(true);

Alapértelmezés szerint a nodelay értéke a globális WiFiClient::getDefaultNoDelay() függvénytől függ (jelenleg alapértelmezés szerint false).

A wiFiServer.setNoDelay() hívása azonban felülírja a NoDelay-t a hívó példány (wiFiServer) által biztosított összes új WiFiClient esetében.


Egyéb funkcióhívások


bool  hasClient()
size_t  hasClientData()
bool  hasMaxPendingClients()
bool  getNoDelay()
virtual size_t  write (const uint8_t *buf, size_t size)
uint8_t  status()
void  close()
void  stop()

A fenti függvényekhez még nem áll rendelkezésre dokumentáció.

A kódmintákért kérjük, olvassa el a külön szakaszt, amely kifejezetten a szerverosztályra vonatkozó példákat tartalmaz.


© Copyright 2017, Ivan Grokhotkov Revision b080c507. Fordította: Maczák András