WiFiServer Class
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