Class WiFiUdp

Description

Defines a class of WiFi UDP implementation for Ameba.

Syntax

class WiFiUDP

Members

Public Constructors

WiFiUDP::WiFiUDP

Constructs a WiFiUDP instance of the WiFi UDP class that can send and receive UDP messages

Public Methods

WiFiUDP:: begin

initialize, start listening on the specified port. Returns 1 if successful, 0 if there are no sockets available to use

WiFiUDP:: stop

Finish with the UDP socket

WiFiUDP:: beginPacket

Start building up a packet to send to the remote host-specific in IP and port

WiFiUDP:: endPacket

Finish off this packet and send it

WiFiUDP:: write

Write a single byte into the packet

WiFiUDP:: writeImmediately

Send packet immediately from the buffer

WiFiUDP:: parsePacket

Start processing the next available incoming packet

WiFiUDP::available

Number of bytes remaining in the current packet

WiFiUDP::read

Read a single byte from the current packet

WiFiUDP:: peek

Return the next byte from the current packet without moving on to the next byte

WiFiUDP:: flush

Finish reading the current packet

WiFiUDP:: remoteIP

Return the IP address of the host who sent the current incoming packet

WiFiUDP:: remotePort

Return the port of the host who sent the current incoming packet

WiFiUDP:: setRecvTimeout

Set receiving timeout


WiFiUDP::WiFiUDP

Description

Constructs a WiFiUDP instance of the WiFi UDP class that can send and receive UDP messages.

Syntax

WiFiUDP::WiFiUDP(void)

Parameters

The function requires no input parameter.

Returns

The function returns nothing.

Example Code

Example: WiFiUdpSendReceiveString

This example demonstrates WiFi UDP send and receive string. This sketch waits for a UDP packet on a local port using a WiFi shield. When a packet is received an Acknowledge packet is sent to the client on port remotePort.

#include "WiFi.h"
#include "WiFiUdp.h"

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

unsigned int localPort = 2390;      // local port to listen on

char packetBuffer[255]; //buffer to hold incoming packet
char  ReplyBuffer[] = "acknowledged";       // a string to send back

WiFiUDP Udp;

void setup() {
  //Initialize serial and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }

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

  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 SSID: ");
    Serial.println(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);
  }
  Serial.println("Connected to wifi");
  printWifiStatus();

  Serial.println("\nStarting connection to server...");
  // if you get a connection, report back via serial:
  Udp.begin(localPort);
}

void loop() {

  // if there's data available, read a packet
  int packetSize = Udp.parsePacket();
  if (packetSize) {
    Serial.print("Received packet of size ");
    Serial.println(packetSize);
    Serial.print("From ");
    IPAddress remoteIp = Udp.remoteIP();
    Serial.print(remoteIp);
    Serial.print(", port ");
    Serial.println(Udp.remotePort());

    // read the packet into packetBufffer
    int len = Udp.read(packetBuffer, 255);
    if (len > 0) {
      packetBuffer[len] = 0;
    }
    Serial.println("Contents:");
    Serial.println(packetBuffer);

    // send a reply, to the IP address and port that sent us the packet we received
    Udp.beginPacket(Udp.remoteIP(), Udp.remotePort());
    Udp.write(ReplyBuffer);
    Udp.endPacket();
  }
}

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

This constructor does not take in any parameter, thus use another method to set up the IP address and port number.


WiFiUDP::begin**

Description

Initialize, start listening on the specified port. Returns 1 if successful, 0 if there are no sockets available to use.

Syntax

uint8_t WiFiUDP::begin(uint16_t port)

Parameters

port : the local port to listen on

Returns

1: if successful

0: if there are no sockets available to use

Example Code

Example: WiFiUdpSendReceiveString

This example demonstrates WiFi UDP send and receive string. This sketch waits for a UDP packet on a local port using a WiFi shield. When a packet is received an Acknowledge packet is sent to the client on port remotePort. The detail of the code can be found in WiFiUDP:: WiFiUDP.

Notes and Warnings

NA


WiFiUDP::stop

Description

Disconnect from the server. Release any resource being used during the UDP session.

Syntax

void WiFiUDP::stop(void)

Parameters

The function requires no input parameter.

Returns

The function returns nothing.

Example Code

NA

Notes and Warnings

NA


WiFiUDP::beginPacket

Description

Start building up a packet to send to the remote host-specific in IP and port.

Syntax

int WiFiUDP::beginPacket(const char *host, uint16_t port)
int WiFiUDP::beginPacket(IPAddress ip, uint16_t port)

Parameters

host : hostname

port : port number

ip : IP address

Returns

1: if successful

0: if there was a problem with the supplied IP address or port

Example Code

Example: WiFiUdpSendReceiveString

This example demonstrates WiFi UDP send and receive string. This sketch waits for a UDP packet on a local port using a WiFi shield. When a packet is received an Acknowledge packet is sent to the client on port remotePort. The detail of the code can be found in WiFiUDP:: WiFiUDP.

Notes and Warnings

NA


WiFiUDP::endPacket

Description

Finish off this packet and send it

Syntax

int WiFiUDP::endPacket(void)

Parameters

The function requires no input parameter.

Returns

1: if the packet was sent successfully

0: if there was an error

Example Code

Example: WiFiUdpSendReceiveString

This example demonstrates WiFi UDP send and receive string. This sketch waits for a UDP packet on a local port using a WiFi shield. When a packet is received an Acknowledge packet is sent to the client on port remotePort. The detail of the code can be found in WiFiUDP:: WiFiUDP.

Notes and Warnings

NA


WiFiUDP::write

Description

Write a single byte into the packet.

Syntax

size_t WiFiUDP::write(uint8_t byte)
size_t WiFiUDP::write(const uint8_t *buffer, size_t size)

Parameters

byte : the outgoing byte

buffer: the outgoing message

size : the size of the buffer

Returns

single-byte into the packet

bytes size from the buffer into the packet

Example Code

Example: WiFiUdpSendReceiveString

This example demonstrates WiFi UDP send and receive string. This sketch waits for a UDP packet on a local port using a WiFi shield. When a packet is received an Acknowledge packet is sent to the client on port remotePort. The detail of the code can be found in WiFiUDP:: WiFiUDP.

Notes and Warnings

NA


WiFiUDP::writeImmediately

Description

Send packet immediately from the buffer

Syntax

size_t WiFiUDP::writeImmediately(const uint8_t *buffer, size_t size)

Parameters

buffer : the outgoing message

size : the size of the buffer

Returns

single-byte into the packet

bytes size from the buffer into the packet

Example Code

NA

Notes and Warnings

NA


WiFiUDP::parsePacket

Description

Start processing the next available incoming packet

Syntax

int WiFiUDP::parsePacket(void)

Parameters

The function requires no input parameter.

Returns

The function returns the size of the packet in bytes or returns “0:” if no packets are available.

Example Code

Example: WiFiUdpSendReceiveString

Notes and Warnings

NA


WiFiUDP::available

Description

Number of bytes remaining in the current packet.

Syntax

int WiFiUDP::available(void)

Parameters

The function requires no input parameter.

Returns

the number of bytes available in the current packet 0: if parsePacket hasn’t been called yet

Example Code

NA

Notes and Warnings

NA


WiFiUDP::read

Description

Read a single byte from the current packet

Syntax

int WiFiUDP::read()
int WiFiUDP::read(unsigned char* buffer, size_t len)

Parameters

buffer : buffer to hold incoming packets (char*)

len : maximum size of the buffer (int)

Returns

size : the size of the buffer

-1 : if no buffer is available

Example Code

Example: WiFiUdpSendReceiveString

This example demonstrates WiFi UDP send and receive string. This sketch waits for a UDP packet on a local port using a WiFi shield. When a packet is received an Acknowledge packet is sent to the client on port remotePort. The detail of the code can be found in WiFiUDP:: WiFiUDP.

Notes and Warnings

NA


WiFiUDP::peek

Description

Return the next byte from the current packet without moving on to the next byte

Syntax

int WiFiUDP::peek(void)

Parameters

The function requires no input parameter.

Returns

b : the next byte or character

-1 : if none is available

Example Code

NA

Notes and Warnings

NA


WiFiUDP::flush

Description

Finish reading the current packet

Syntax

void WiFiUDP::flush(void)

Parameters

The function requires no input parameter.

Returns

The function returns nothing.

Example Code

NA

Notes and Warnings

NA


WiFiUDP::remoteIP

Description

Return the IP address of the host who sent the current incoming packet

Syntax

IPAddress WiFiUDP::remoteIP(void)

Parameters

The function requires no input parameter.

Returns

IP address connecting to

Example Code

Example: WiFiUdpSendReceiveString

This example demonstrates WiFi UDP send and receive string. This sketch waits for a UDP packet on a local port using a WiFi shield. When a packet is received an Acknowledge packet is sent to the client on port remotePort. The detail of the code can be found in WiFiUDP:: WiFiUDP.

Notes and Warnings

NA


WiFiUDP::remotePort

Description

Return the port of the host who sent the current incoming packet

Syntax

uint16_t WiFiUDP::remotePort(void)

Parameters

The function requires no input parameter.

Returns

The remote port connecting to

Example Code

Example: WiFiUdpSendReceiveString

This example demonstrates WiFi UDP send and receive string. This sketch waits for a UDP packet on a local port using a WiFi shield. When a packet is received an Acknowledge packet is sent to the client on port remotePort. The detail of the code can be found in WiFiUDP:: WiFiUDP.

Notes and Warnings

NA


WiFiUDP::setRecvTimeout

Description

Set receiving timeout

Syntax

void WiFiUDP::setRecvTimeout(int timeout)

Parameters

timeout in seconds

Returns

The function returns nothing.

Example Code

NA

Notes and Warnings

NA