Base class for IP Based Networking Libraries

Dependencies:   DnsQuery

Dependents:   TempTower BSDInterfaceTests HelloBSDInterface ESP8266InterfaceTests ... more

For a complete getting started guide see the wiki...

Network Socket API

The Network Socket API provides a common interface for using sockets on network devices. The API provides a simple class-based interface that should be familiar to users experienced with other socket APIs. Additionally, the API provides a simple interface for implementing network devices, making it easy to connect hardware agnostic programs to new devices.

Network Interfaces

The NetworkInterface provides an abstract class for network devices that support sockets. Devices should provide a DeviceInterface class that inherits this interface and adds implementation specific methods for using the device. A NetworkInterface must be provided to a Socket constructor to open a socket on the interface. Currently two subclasses are defined for common devices, EthernetInterface and WiFiInterface.

Sockets

The Socket class is used for managing network sockets. Once opened, the socket provides a pipe through which data can sent and recieved to a specific endpoint. The socket class can be instantiated as either a TCPSocket or a UDPSocket which defines the protocol used for the connection.

Revisions of Socket.cpp

Revision Date Message Actions
66:c84a4c76cb94 2016-04-01 Changed API to better match Posix sockets; ; - Send returns size on success; - Returns NS_ERROR_WOULD_BLOCK when recv would block File  Diff  Annotate
65:ca337f9ebdab 2016-04-01 Added support for closing sockets during blocking recvs File  Diff  Annotate
58:1caa187fa5af 2016-02-25 Removed setURL/IPAddress/Port set of functions from Socket and SocketInterface File  Diff  Annotate
57:3c873fab4207 2016-02-25 Standardized prefix to NS for enums and constants File  Diff  Annotate
54:0c764f654352 2016-02-25 Added correct handling of sockets when closed multiple times File  Diff  Annotate
49:85fe0b99948d 2016-02-25 Fixed naming collision File  Diff  Annotate
48:b3bbe28a7963 2016-02-25 Added non-blocking recv File  Diff  Annotate
45:c8aca7c1e93f 2016-02-24 Added inexaustive list of standardized error codes File  Diff  Annotate
43:09ea32f2eb54 2016-02-24 Responded to feedback in API decisions File  Diff  Annotate
42:49893d13c432 2016-02-23 Standardized some C++ style things File  Diff  Annotate
41:3ec1c97e9bbf 2016-02-23 Moved timeout handling to setTimeout/getTimeout functions File  Diff  Annotate
39:47138420ea42 2016-02-22 Added proper handling of missing ip/port File  Diff  Annotate
38:157fb2ab965f 2016-02-22 Added isConnected method to Socket/SocketInterface File  Diff  Annotate
36:eab792dfb0d8 2016-02-22 Added passing of ip/port into SocketInterface::open for implementation convenience File  Diff  Annotate
35:838393fbc2ca 2016-02-22 Added error on connect without ip/port File  Diff  Annotate
34:c17745683385 2016-02-22 Added url/ip/port as optional arguments to open File  Diff  Annotate
32:2c5fc105fc50 2016-02-22 Added open/close calls to all sockets File  Diff  Annotate
31:7f15b95f2a1d 2016-02-22 Added dependency on DnsQuery accessible through getHostByName File  Diff  Annotate
30:3cc78f5db99d 2016-02-22 Standardized formatting File  Diff  Annotate
29:7bcec3189a93 2016-02-22 Fixed include statements File  Diff  Annotate
28:163fbe3263f4 2016-02-18 Removed memory allocations for internal buffers File  Diff  Annotate
27:d7ed39727306 2016-02-18 Added better behaviour for urls in constructors File  Diff  Annotate
25:ed7b2a52e8ac 2016-02-18 Added abstract base case for Sockets File  Diff  Annotate