Provides a generic interface to communications protocols through communication end points known as sockets. Symbian OS sockets are similar in concept to Berkeley Software Distribution (BSD) sockets from the University of California at Berkeley.
The Sockets architecture provides a generic client interface, and a server to which particular protocol modules can be plugged in. A client uses a particular protocol by supplying protocol-specific parameters to Sockets API functions.
The TCP/IP API enables clients to use sockets for TCP/IP.
The IrDA Sockets API enables clients to use sockets for IrDA infra-red.
The Bluetooth Sockets API enables clients to use sockets for Bluetooth.
The SMS PRT API provides the GSM SMS Protocol stack and the WAP protocol stack over SMS.
The API has some key concepts: socket server, socket, connection, host name resolver, network database, and address.
The socket server controls access of clients to sockets services, and provides information about the available sockets protocols.
The client interface to the socket server is provided by
RSocketServ
.
The protocol information interface is provided by
TProtocolDesc
.
A socket is a client endpoint to a communications protocol.
The client socket interface allows sockets to be opened, connections made, data read and written, connections listened for and accepted, and address and other options set.
The client socket interface is provided by
RSocket
.
An active connection is needed for the TCP/IP protocol before
communication can begin. This may be set up either implicitly, via the
RSocket
or RHostResolver
APIs, or
explicitly via the RConnection
API (in v7.0S
onwards).
A host name resolver provides an interface to host name resolution services, such as DNS, that may be provided by particular protocol modules. Host name resolution services convert between addresses and names.
The client host name resolver interface is provided by
RHostResolver
.
The network database provides access to network databases, such as LM-IAS with IrDA, that may be provided by particular protocol modules.
The client network database interface is provided by
RNetDatabase
.
An address is used to specify the target for communications.
The base address class is provided by TSockAddr
.
Specific protocol address classes are derived from this.