Symbian OS sockets API
2010-07-22 01:42:00 来源:WEB开发网因为socket是由机器地址和端口号来区分/识别的,那么在一个特定的计算机网络上,每一个socket都是以此方式被唯一识别的。这就使得应用程序可以唯一地去定位网络上的另外一个位置的socket。
注意:对于同一台机器上的两个socket,他们是完全具备彼此间进行通信的可能的;在这种情况下,两个socket具有相同的主机地址,但是他们拥有不同的端口号。
主机地址和端口号的组合,对于不同协议是不同的。在socket的经典应用中,网络通信使用的是IP(Internet Protocol)协议,但是实际上socket是支持很多其它协议的,对于这方面的信息稍后会提到。
正如我们将会看到的,不管我们选择怎样的通信协议(传输层),我们都可以使用同一种已成熟的socket API来实现通信。
协议模块
如上文所述,socket的经典应用是在TCP/IP协议的计算机网络上,使两个逻辑端点之间展开通信活动。最著名的应用TCP/IP的计算机网络,当然就是Internet了。
绝大多数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在本文的后面将会进行讨论。
更多精彩
赞助商链接