Symbian socket 网络编程方法
2010-03-18 20:59:00 来源:WEB开发网随着时间的发展,新的协议逐步登上历史舞台,协议模块都将会为了适应socket接口而被重写。而应用程序开发者,他们只需要增添协议新近引入的属性或者动作,来支持新的协议即可,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对象,这些对象就是子会话了。
下面的两个部分将会介绍会话和子会话类(RSocketServ 和 RSocket)的详细内容。
赞助商链接