Socket 服务组件便会使用新的协议,借助操作系统底层的通信组件,来完成通信机制,而并不
会影响到上层应用程序开发者的接口和开发。
总而言之,socket 服务组件可以让应用程序开发者在仅仅维护一套核心 API 接口的情况下,可以
借助操作系统的通信子系统来使用多个协议,从而介绍了自己的开发工作量以及开发时间。
“客户端-服务器”接口
Symbian 系统的一个特点就是它具有一个体积很小的微内核(micro-kernel),因此我们只能把
必须和硬件设备交互以及进行主机控制的核心服务放在内核端运行。而另外许许多多的系统服务
只能以用户模式的服务器线程的形式运行,通常被称为‘系统服务器’。
socket 服务组件就是这些‘系统服务器’中的一个,第三方应用程序就借助公开的客户端 API,通
过该组件完成通信功能。其中最重要的四个类为:
RSocketServer: 这个类是用来建立和 socket 服务组件之间的连接以及获取必要的资源
的。在客户端-服务器架构的定义中,该类表示了应用程序与 socket 服务组件之间建立
连接的会话。所有的其他客户端接口类,在使用中都需要一个被打开的本类的实例来进
行操作。
RSocket: 这个类表示了一个 socket 连接。一个标准的应用程序可能会在不同时间的时
候,拥有若干个 RSocket 的实例在同时进行操作。
RHostResolver: 这个类用来提供主机名称解析服务的接口。
RNetDatabase: 这个类用来提供网络数据库访问的接口。
RSocket, RHostResolver & RNetDatabase 均表示了一个给定的应用程序与 socket 服务组件之
间进行的会话下的子会话,而应用程序与 socket 服务组件之间的会话就是一个 RSocketServer
的实例。
sockets 服务器的主要类
socket 服务组件提供了两个主类,供他的客户端访问内部的 API。
RSocketServ: 在每个应用程序线程中,只要需要连接 socket 请求,他就必须使用一个
本类的实例,来为其他连接(会话)提供 socket 服务。
RSocket: 每一个需要使用 socket 的应用程序线程,同样也需要一个或多个 RSocket 对
象,这些对象就是子会话了。