Class WiFiServer

Description

Defines a class of WiFi server implementation for Ameba.

Syntax

class WiFiServer

Members

Public Constructors

WiFiServer::WiFiServer

Constructs a WiFiServer object and creates a server that listens for incoming connections on the specified port

Public Methods

WiFiServer::available

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; you can close it by calling the client.stop()

WiFiServer::begin

Tells the server to begin listening for incoming connections

WiFiServer::write

Write data to all the clients connected to a server


WiFiServer::WiFiServer

Description

Constructs a WiFiServer object and creates a server that listens for incoming connections on the specified port.

Syntax

WiFiServer::WiFiServer(uint16_t port)

Parameters

port : The port number being connected to.

Returns

The function returns nothing.

Example Code

Example: SimpleServerWiFi

#include "WiFi.h"

char ssid[] = "yourNetwork";      //  your network SSID (name)
char pass[] = "secretPassword";   // your network password
int keyIndex = 0;                 // your network key Index number (needed only for WEP)

int status = WL_IDLE_STATUS;
WiFiServer server(5000);

void setup() {
  Serial.begin(9600);      // initialize serial communication
  pinMode(9, OUTPUT);      // set the LED pin mode

  // check for the presence of the shield:
  if (WiFi.status() == WL_NO_SHIELD) {
    Serial.println("WiFi shield not present");
    while (true);       // don't continue
  }

  String fv = WiFi.firmwareVersion();
  if ( fv != "1.1.0" )
    Serial.println("Please upgrade the firmware");

  // attempt to connect to Wifi network:
  while ( status != WL_CONNECTED) {
    Serial.print("Attempting to connect to Network named: ");
    Serial.println(ssid);                   // print the network name (SSID);

    // Connect to WPA/WPA2 network. Change this line if using open or WEP network:
    status = WiFi.begin(ssid, pass);
    // wait 10 seconds for connection:
    delay(10000);
  }
  server.begin();                           // start the tcp server on port 5000
  printWifiStatus();                        // you're connected now, so print out the status
}

char buffer[256];
void loop() {
  WiFiClient client = server.available();

  while (client.connected()) {
    memset(buffer, 0, 256);
    int n = client.read((uint8_t*)(&buffer[0]), sizeof(buffer));
    if (n > 0) {
      for (int i=0; i<n; i++) {
        Serial.print(buffer[i]);
      }
      n = client.write(buffer, n);
      if (n <= 0) break;
    }
  }

  client.stop();
}

void printWifiStatus() {
  // print the SSID of the network you're attached to:
  Serial.print("SSID: ");
  Serial.println(WiFi.SSID());

  // print your WiFi shield's IP address:
  IPAddress ip = WiFi.localIP();
  Serial.print("IP Address: ");
  Serial.println(ip);

  // print the received signal strength:
  long rssi = WiFi.RSSI();
  Serial.print("signal strength (RSSI):");
  Serial.print(rssi);
  Serial.println(" dBm");
}

Notes and Warnings

NA


WiFiServer::available

Description

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; you can close it by calling the client.stop().

Syntax

WiFiClient WiFiServer::available(uint8_t* status)

Parameters

status : WiFi availability status

Returns

A Client object; if no Client has data available for reading, this object will evaluate to false in an if-statement

Example Code

Example: SimpleServerWiFi

Details of the code can be found in the previous section of WiFiServer:: WiFiServer.

Notes and Warnings

NA


WiFiServer::begin

Description

Tells the server to begin listening for incoming connections

Syntax

void WiFiServer::begin(void)

Parameters

The function requires no input parameter.

Returns

The function returns nothing.

Example Code

Example: SimpleServerWiFi

Details of the code can be found in the previous section of WiFiServer:: WiFiServer.

Notes and Warnings

NA


WiFiServer::write

Description

Write data to all the clients connected to a server

Syntax

size_t WiFiServer::write(uint8_t b)
size_t WiFiServer::write(const uint8_t *buf, size_t size)

Parameters

b: byte to be written

buf : data buffer

size : Size of the data in the buffer

Returns

The function returns the number of bytes written. It is not necessary to read this.

Example Code

Example: SimpleServerWiFi

Details of the code can be found in the previous section of

WiFiServer:: WiFiServer.

Notes and Warnings

NA