The following example shows how an application can use a sub-connection explicitly via an RSubConnection instance, and tie an already connected RSocket to the sub-connection that has had its properties set (parameter creation is described in separate section):
RSocketServ ss;
RConnection conn;
RSubConnection subconn;
RSocket sock;
TRequestStatus status;
// Connect to ESOCK
ss.Connect();
// Open an Connection
conn.Open(ss, KAfInet);
// Start the connection
conn.Start(status);
User::WaitForRequest(status);
// Open a TCP socket on the connection
sock.Open(ss, KAfInet, KSockStream, KProtocolInetTcp, conn);
_LIT(KRasAddr,"10.159.24.13");
const TInt KEchoPort = 7;
TInetAddr destAddr;
destAddr.Input(KRasAddr);
destAddr.SetPort(KEchoPort);
// Connect the Socket to the destination over the connection (default sub-connection)
sock.Connect(destAddr, status);
// Create a new sub-connection
subconn.Open(ss, RSubConnection::ECreateNew, conn);
// Set Properties of the sub-connection
subconn.SetParameters(…);
// Move the connected socket onto the new sub-connection
TRequestStatus status;
subconn.Add(sock, status);
// Wait for socket to added
User::WaitForRequest(status);
Note: Error handling is not included to aid clarity.
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.