WEB开发网
开发学院手机开发Symbian 开发 Symbian sockets 基本介绍 阅读

Symbian sockets 基本介绍

 2010-05-31 20:15:00 来源:WEB开发网   
核心提示:使用Connect()方法,应用程序就可以建立与socket服务之间的一个会话,Symbian sockets 基本介绍(5),它仅仅使用一个参数--该会话所提供的消息通道的个数,TInt Connect (TUint aMessageSlots); 消息数参数被用来限定应用程序向socket服务所同时并发的异步操作的

使用Connect()方法,应用程序就可以建立与socket服务之间的一个会话。它仅仅使用一个参数--该会话所提供的消息通道的个数。

TInt Connect (TUint aMessageSlots); 消息数参数被用来限定应用程序向socket服务所同时并发的异步操作的请求通道数。每一个同步请求都将占用一个消息通道,并且请求准备中的异步操作也将占用一个消息通道。

一个普通socket进行的读写通信操作,都是异步进行的,也就是说这样的操作要占用两个消息通道。如果socket也可以进行同步操作的话,那么我们其实并不需要指定过多的消息通道,因为同步操作的消息通道是由socket客户端-服务器框架来完成的。对于你的应用程序在同一个时间内会使用到多少个消息通道,这完全是由你来断定的,而在大多数情况下,我们要尽可能的减少同时请求的消息通道数。

如果我们不指定任何特定的值,那么系统会使用一个默认值作为消息通道个数的参数:KESockDefaultMessageSlots (0x08)。

预载入协议模块

socket 服务组件载入协议协议模块的动作是动态进行的,当针对某一个协议的第一个socket被创建的时候,该协议模块在此时才会被载入。尽管如此,载入协议仍然是一件比较费时的操作,RSocketServ提供了一个StartProtocol()函数,来进行协议模块的预载入操作,调用该函数可以在 socket连接请求的时候节省载入协议模块的时间。

如果你的应用程序需要在程序启动之初就载入协议模块,而并非需要连接的时候才进行载入,那么可以使用下面的函数范例来调用StartProtocol()方法:

void StartProtocol (TUint aFamily, TUint aSockType, TUint aProtocol, TRequestStatus& aStatus);StartProtocol()函数的参数有:协议族(例如,KAfInet),使用该协议的socket类型(例如,KSockStream),协议族中的协议标示(例如,KProtocolInetTcp),最后一个参数是异步调用的完成状态参数。这些参数的意义将会在下面做以简短介绍。

请注意,尽管StartProtocol()函数是一个异步服务,但是它却是一个在操作过程中不能被取消的操作。

使用RSocket类

RSocket代表了应用程序的一个socket连接,在一个应用程序中,每一个socket连接都是一个单独的RSocket的实例 。事实上,客户端应用程序的代码中使用更多的是RSocket类而并不是RSocketServ类。

RSocket是一个提供了许许多多服务的体积庞大的类,这些服务包括:

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:Symbian sockets 基本

编辑录入:coldstar [复制链接] [打 印]
赞助商链接