diff -r 51a74ef9ed63 -r ae94777fff8f Symbian3/SDK/Source/GUID-8A5054C9-7556-5153-8CEE-FA8E5F4155AE.dita --- a/Symbian3/SDK/Source/GUID-8A5054C9-7556-5153-8CEE-FA8E5F4155AE.dita Wed Mar 31 11:11:55 2010 +0100 +++ b/Symbian3/SDK/Source/GUID-8A5054C9-7556-5153-8CEE-FA8E5F4155AE.dita Fri Jun 11 12:39:03 2010 +0100 @@ -1,99 +1,99 @@ - - - - - -How -to Create an Explicitly Bound SocketThis topic describes how create an explicitly bound socket. -

Start the network interface connection with RConnection::Start() to -create an explicitly bound socket.

Creating an explicitly bound -socket

Explicitly bound sockets can be created in two ways:

- -Open a socket and bind the socket to a network interface connection. -
    -
  • Call RSocket::Open() and pass an RConnection.

    RConnection binds -to an interface corresponding to the RConnection.

    -In the following example code, if iConn corresponds to a -WiFi RConnection then, after a calling RSocket::Open() the -socket is explicitly bound to WiFi.

    iRecvSock.Open( ss, KAfInet, KSockStream, KProtocolInetTcp, iConn );
  • -
-
-Open a socket and bind the socket to an IP address of the network -interface connection. -
    -
  • Call RSocket::Bind() and bind the socket to an -IP address of the network interface connection.

    RSocket::Bind() binds -the socket to a unique IP address of the network interface connection.

    -The following example code shows how to open a socket and bind the socket -to a unique IP address of the WiFi connection.

    // open an implicit socket -TInt err = iRecvSock.Open( iSs, KAfInet, KSockDatagram, KProtocolInetUdp); -User::LeaveIfError( err ); -// This IP address maps to WiFi in the ced.cfg file -_LIT(KRasAddr,"192.168.220.4"); -const TInt KPort = 7000; -TInetAddr addr; -err = addr.Input( KRasAddr ); -User::LeaveIfError( err ); -addr.SetPort( KPort ); -// Now the socket is explicitly bound to WiFi -err = iRecvSock.Bind( addr ); -RDebug::Print( _L("testapp: ETH Bind() = %d"), err ); -User::LeaveIfError( err ); -
  • -

The following code block shows an extract from the ced.cfg file. -

-## -[LANService] -ADD_SECTION -# COMMDB_ID = 1 -Name=Ethernet -IfNetworks=ip -IpNetMask=255.0.0.0 -IpGateway=0.0.0.0 -IpAddrFromServer=FALSE -IpAddr=192.168.1.1 -IpDNSAddrFromServer=FALSE -ConfigDaemonManagerName=NetCfgExtnDhcp -ConfigDaemonName=!DhcpServ -FIELD_COUNT=9 -END_ADD - -ADD_SECTION -# COMMDB_ID = 2 -Name=Ethernet WiFi -IfNetworks=ip -IpNetMask=255.0.0.0 -IpGateway=0.0.0.0 -IpAddrFromServer=FALSE --// This IP address maps to WiFi -IpAddr=192.168.220.4 -IpDNSAddrFromServer=FALSE -IpNameServer1=194.72.6.51 -IpNameServer2=194.72.6.52 -ConfigDaemonManagerName=NetCfgExtnDhcp -ConfigDaemonName=!DhcpServ -LanServiceExtensionTableName=WLANServiceExtensionTable -LanServiceExtensionTableRecordId=4 -FIELD_COUNT=13 -END_ADD -
-
-
-

The socket is explicitly bound to the specific IP address of the -network interface connection.

-Explicit binding example

Client A creates a socket -with explicit binding using the specified interface connection.

sock1 = RSocket.Open(srv,conn);

ESock -creates the socket within the default connection and subconnection.

- -
-

A socket can also be opened over a sub-connection using RSubConnection. -When the socket is opened, a new Service Access Point (SAP) is created for -the socket in ESock. The SAP is used to handle inbound -and outbound data.

+ + + + + +How +to Create an Explicitly Bound SocketThis topic describes how create an explicitly bound socket. +

Start the network interface connection with RConnection::Start() to +create an explicitly bound socket.

Creating an explicitly bound +socket

Explicitly bound sockets can be created in two ways:

+ +Open a socket and bind the socket to a network interface connection. +
    +
  • Call RSocket::Open() and pass an RConnection.

    RConnection binds +to an interface corresponding to the RConnection.

    +In the following example code, if iConn corresponds to a +WiFi RConnection then, after a calling RSocket::Open() the +socket is explicitly bound to WiFi.

    iRecvSock.Open( ss, KAfInet, KSockStream, KProtocolInetTcp, iConn );
  • +
+
+Open a socket and bind the socket to an IP address of the network +interface connection. +
    +
  • Call RSocket::Bind() and bind the socket to an +IP address of the network interface connection.

    RSocket::Bind() binds +the socket to a unique IP address of the network interface connection.

    +The following example code shows how to open a socket and bind the socket +to a unique IP address of the WiFi connection.

    // open an implicit socket +TInt err = iRecvSock.Open( iSs, KAfInet, KSockDatagram, KProtocolInetUdp); +User::LeaveIfError( err ); +// This IP address maps to WiFi in the ced.cfg file +_LIT(KRasAddr,"192.168.220.4"); +const TInt KPort = 7000; +TInetAddr addr; +err = addr.Input( KRasAddr ); +User::LeaveIfError( err ); +addr.SetPort( KPort ); +// Now the socket is explicitly bound to WiFi +err = iRecvSock.Bind( addr ); +RDebug::Print( _L("testapp: ETH Bind() = %d"), err ); +User::LeaveIfError( err ); +
  • +

The following code block shows an extract from the ced.cfg file. +

+## +[LANService] +ADD_SECTION +# COMMDB_ID = 1 +Name=Ethernet +IfNetworks=ip +IpNetMask=255.0.0.0 +IpGateway=0.0.0.0 +IpAddrFromServer=FALSE +IpAddr=192.168.1.1 +IpDNSAddrFromServer=FALSE +ConfigDaemonManagerName=NetCfgExtnDhcp +ConfigDaemonName=!DhcpServ +FIELD_COUNT=9 +END_ADD + +ADD_SECTION +# COMMDB_ID = 2 +Name=Ethernet WiFi +IfNetworks=ip +IpNetMask=255.0.0.0 +IpGateway=0.0.0.0 +IpAddrFromServer=FALSE +-// This IP address maps to WiFi +IpAddr=192.168.220.4 +IpDNSAddrFromServer=FALSE +IpNameServer1=194.72.6.51 +IpNameServer2=194.72.6.52 +ConfigDaemonManagerName=NetCfgExtnDhcp +ConfigDaemonName=!DhcpServ +LanServiceExtensionTableName=WLANServiceExtensionTable +LanServiceExtensionTableRecordId=4 +FIELD_COUNT=13 +END_ADD +
+
+
+

The socket is explicitly bound to the specific IP address of the +network interface connection.

+Explicit binding example

Client A creates a socket +with explicit binding using the specified interface connection.

sock1 = RSocket.Open(srv,conn);

ESock +creates the socket within the default connection and subconnection.

+ +
+

A socket can also be opened over a sub-connection using RSubConnection. +When the socket is opened, a new Service Access Point (SAP) is created for +the socket in ESock. The SAP is used to handle inbound +and outbound data.

\ No newline at end of file