WEB开发网
开发学院手机开发Symbian 开发 Symbian 网络编程API收藏 阅读

Symbian 网络编程API收藏

 2010-09-06 08:09:00 来源:WEB开发网   
核心提示:一个普通socket进行的读写通信操作,都是异步进行的,Symbian 网络编程API收藏(5),也就是说这样的操作要占用两个消息通道,如果socket也可以进行同步操作的话,我们必须有一个激活了的RSocketServ会话 ,并且,那么我们其实并不需要指定过多的消息通道,因为同步操作的消息通道是由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是一个提供了许许多多服务的体积庞大的类,这些服务包括:

连接到服务,无论作为客户端还是服务端

设置或者查询自己的地址,或者查询远程地址S

从socket读取数据

向socket写入数据

其他更多...

在打开任何socket之前,我们必须有一个激活了的RSocketServ会话 。并且,在上述提到的任何服务进行操作之前,我们要确保

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

Tags:Symbian 网络编程 API

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