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

Symbian sockets 基本介绍

 2010-05-31 20:15:00 来源:WEB开发网   
核心提示:作为客户端API的一部分,socket服务组件提供了RHostResolver类,Symbian sockets 基本介绍(7),用这个类我们可以获得一个通用的主机地址解析服务,这项服务的内部会自己处理相应不同协议的主机地址解析的细节问题,我们还需要指定一个协议来进行主机地址解析服务,如果之前选择的地址类型是协议无关类

作为客户端API的一部分,socket服务组件提供了RHostResolver类,用这个类我们可以获得一个通用的主机地址解析服务,这项服务的内部会自己处理相应不同协议的主机地址解析的细节问题。如果我们针对TCP/IP协议族而言,那么RHostResolver类扮演的就是客户端与域名解析服务(DNS)之间进行通信的服务角色。

每一个不同的协议,都提供了自己的主机解析服务,这些服务是作为协议模块的一个标准部分实现的。这样的设计就使得客户端可以仅仅访问RHostResolver类,而并不需要关心socket使用的是哪一种协议。

RHostResolver接口提供了如下几种功能供客户端应用程序访问,他们是:

将一个数字网络地址转换为人所能识别的包含一定意义的文本表现形式

将人读地址转换为相对应的机读数字地址

读取或者设置本地设备的主机名的方法/函数

就像是RSocket一样,RHostResolver类继承自RSubSessionBase。因此,要想使用RHostResolver类,客户端应用程序就必须先进行对socket服务组件的服务器的连接,这个服务组件的服务器就是一个RSocketServ类的实例。

RHostResolver类提供了许多主机地址解析服务的函数/方法,每一个函数都提供了两个版本的多态函数--同步和异步操作。

请注意,因为这是一个通用的主机地址解析接口,但是并不是所有的协议都提供了主机地址解析服务,所以有些协议可能并没有提供任何主机地址解析服务。

如果客户端应用程序尝试使用RHostResolver中的函数去对一个不支持主机地址解析服务的协议请求主机地址解析服务,那么将会得到错误代码KErrNotSupported。

在进行任何主机地址解析服务之前,我们要打开一个RHostResolver类的实例。正如前面所提到过的,因为主机解析服务类是一个子会话类,所以在调用 RHostResolver::Open()函数之前,该子会话类必须关联一个socket服务组件的服务器会话对象实例。

TInt Open(RSocketServ& aSocketServer, TUint anAddrFamily, TUint aProtocol);下一步,我们将会根据上面所示的函数原形,制定我们希望用哪个地址类型来解析的主机地址,地址类型应该是和传递给 RSocket::Open()函数的参数一致的。

最后,我们还需要指定一个协议来进行主机地址解析服务。如果之前选择的地址类型是协议无关类型的,那么我们可以在这里指定KUndefinedProtocol。

其他的RHostResolver类提供的函数如下所示:

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

Tags:Symbian sockets 基本

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