Class WiFiServer

WiFiServer Class

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