Symbian socket 网络编程方法
2010-03-18 20:59:00 来源:WEB开发网绝大多数socket系统的实现都限定在了TCP/IP网络的通信上。
但是,Symbian系统的socket服务组件,就实现了更多的内容;不仅如此,它还为其他组件提供了支持模块插件协议的基础构架。这就使得 Symbian公司和它的开发伙伴们大大延长了socket服务组件以及支持socket的应用程序的应用时间。
由于新协议和传输层的引入,支持了新的传输‘语言’或协议的协议组件,从而使得socket服务组件可以随之适应新的应用环境。
随着 Symbian系统第五版的socket服务组件支持了TCP/IP和红外协议的稽核。在Symbian 6.0版的时候,就增加了蓝牙?无线技术和短信息服务插件。
协议模块其实就是标准的Symbian系统动态链接库(DLL)。他们都有共同的UID2--KUidProtocolModule(0x1000004A)来表示他们的类型,并且拥有特殊的扩展名*.PRT。
一个关于经典系统的方面,就是socket服务对PLP(Psion Link Protocol)协议也是支持的。PLP被用来进行Symbian系统的手机和运行Microsoft Windows的台式或笔记本计算机之间进行通信。PLP的一个应用就是Symbian Connnect - 目前的被用于名为‘PsiWin’的Psion计算机。
socket服务组件可以以两种方式加载协议模块:
最通常的做法就是,协议模块会在第一个使用该协议的socket被打开的时候进行加载。
另外一种做法是,应用程序可以显式地加载协议模块。这种做法的一个好处就在于,当协议加载需要一个比较长的时间的时候,应用程序或用户可以得到相应的提示。使用这种方法调用的API在本文的后面将会进行讨论。
要说明的几点:一个协议模块可以包含多种协议实现。比如,在TCPIP.PRT模块中,就包含了UDP、TCP、ICMP、IP以及DNS协议的实现。单个协议的实现可以通过位于systemdata.的.esk文件进行映射。而每个协议模块都有一个.esk文件来指定该模块所包含的协议,以及每个协议在插件模块中所处的索引位置。
传输的独立性
上文已经提到,socket服务组件的插件架构特性可以使得新的协议模块在任何时间被安装到一部Symbian系统的手机当中。
这个架构可以使得socket服务组件来实现独立传输层的概念。借助于提供一个通用的核心socket API接口,这种架构就可以处理所有一般性数据传输系统的需求,并且通过添加特定协议的协议模块,socket服务组件就可以被广大应用程序开发者来给自己的产品增添通信功能,从而省下了大量的开发通信子系统的时间。
赞助商链接