Week 32 contribution of PDK documentation content. See release notes for details. Fixes bug Bug 3582
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
<!-- This component and the accompanying materials are made available under the terms of the License
"Eclipse Public License v1.0" which accompanies this distribution,
and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
<!-- Initial Contributors:
Nokia Corporation - initial contribution.
Contributors:
-->
<!DOCTYPE concept
PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
<concept id="GUID-1277D793-4A0A-50A7-9414-AEE93E906E80" xml:lang="en"><title>Sockets
Server Architecture</title><prolog><metadata><keywords/></metadata></prolog><conbody>
<p>This section describes the architecture of the Sockets Server and the framework
that implements sockets in Symbian platform. </p>
<p>The sockets are similar in concept to Berkeley Software Distribution (BSD)
sockets from the University of California at Berkeley. The sockets provide
a generic interface to network level communications protocols for common operations
in network computing. Common operations are: </p>
<ul>
<li id="GUID-3CFD5267-2254-5816-9443-E4256579E01D"><p>establish a connection </p> </li>
<li id="GUID-C1061692-C402-5EB1-91E9-EEB3BD3410CE"><p>send data </p> </li>
<li id="GUID-445FF07E-FC13-589A-B375-DED728F88E06"><p>receive data </p> </li>
<li id="GUID-BBC3CE6E-01FA-52E6-BE5E-A53A2E5423AC"><p>configure network protocols </p> </li>
</ul>
<p>The Sockets Client API provides access to other network facilities. Examples
of network facilities are: </p>
<ul>
<li id="GUID-E77E0241-2D8F-531B-93D3-78BD910BCEB4"><p>hostname resolution </p> </li>
<li id="GUID-EB93A7E8-33BC-5A82-9CD7-8AB7065CDB1B"><p>service resolution </p> </li>
<li id="GUID-439CE845-2A89-5886-81DD-9F3DD0537346"><p>information about protocols </p> </li>
<li id="GUID-2AE98676-FEAC-5B49-BB39-1BD635F24FDF"><p>byte manipulation utilities </p> </li>
</ul>
<section id="GUID-986AB642-22DE-422C-965A-F70CC7A79779"><title>Required Background</title> <p>A
working knowledge of socket based communications is recommended in order to
understand how Symbian platform implements sockets. </p> <p>A knowledge of
the selected protocol is also required if the application is going to set
or get values specific to the protocol. For example, the knowledge is required
to understand the data returned from <xref href="GUID-EF29C1D7-B1E5-370F-AE37-66231A6BE449.dita#GUID-EF29C1D7-B1E5-370F-AE37-66231A6BE449/GUID-1B597C97-2AEB-32D1-B225-5C1E24F6470F"><apiname>RSocketServ::GetProtocolInfo()</apiname></xref>.
The knowledge is also required if the application sets <xref href="GUID-9A20701F-5744-5F5F-BB0C-AB58EFB7D087.dita">Quality
of Service</xref> (QoS) values. </p> </section>
<section id="GUID-EBF65B0F-AFAE-4DA4-8B9F-E0E816FB6B67"><title>Key Concepts/Terms</title> <p>The
Sockets Server starts when Symbian platform starts, and receives requests
for socket based communications. If a request is received for a particular
protocol, the Sockets Server loads the appropriate protocol modules to handle
that request. </p> </section>
<section id="GUID-7CE8ED89-2543-4E11-A9A4-9D2BC0B061B2"><title>Architectural
relationships</title> <p>The Sockets Server 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. </p> <fig id="GUID-253611E8-9893-5261-830F-28B888FFA15B">
<title> Figure 1 - The Socket Server's position in the Communications
Framework Architecture. </title>
<image href="GUID-8E6FD3FD-64C8-51E0-AFE7-76DC5AB6A254_d0e110556_href.png" placement="inline"/>
</fig> <p>The TCP/IP API enables clients to use sockets for TCP/IP, including
UDP, TCP, ICMP, IPv4, IPv6, ARP, and DNS. </p> <p>The IrDA Sockets API enables
clients to use sockets for IrDA infra-red. </p> <p>The Bluetooth Sockets API
enables clients to use sockets for Bluetooth. </p> <p>The SMS PRT API provides
the GSM SMS Protocol stack and the WAP protocol stack over SMS. </p> </section>
</conbody></concept>