这篇文章主要介绍
1. 通用连接框架的基础知识。
2. 中国环境下的网络开发
请注意本文假定读者熟悉 J2ME 环境中的 MIDlet 开发。需要在系统中安装 J2ME 开发环境才能编译代码示例,以及 J2ME Wireless Toolkit(WTK) 的安装指导,请参阅文章末尾参考资料 的小结。
GCF 是一组在 javax.microedition.io 包中定义的接口。图 1 显示了 GCF 的类层次结构。
通用连接框架介绍
图 1. 通用连接框架的类层次结构
在 GCF 中共定义了七个接口 ,其中 Connection 是根。注意同时提供了对数据包(packet)和流连接的支持。正如您设想的那样,沿着层次结构向下就会发现提供更多功能的接口。例如, StreamConnection 支持输入和输出流, ContentConnection 扩展了 StreamConnection 以支持对流的内容类型、数据长度和编码格式的确定。
Connector 类用于在 GCF 中打开类型的连接。下面可以看到 Connector 类中的 open() 方法的格式:Connector.Open("protocol:address;parameters"); Open方法会根据你提供的字符串参数进行Connection的绑定。
GCF 在支持不同的连接协议方面特别灵活。在请求打开一个连接时, Connector 类使用其 Class.forName() 方法搜索实现了所请求的协议的类。如果找到这个类,就返回一个实现了 Connection 接口的对象。
下面是一些常用打开一个Connection的方法:
连接框架的用法
七种创建连接的方法,下面是代码示例
Connector 构建了7个静态的方法,上面方法,具体的相关用法以及参数说明可以查看APIs文档。
通讯连接的IO数据流过程基本步骤分别是建立连接、网络通讯、连接关闭。
1、建立连接,创建与服务端的连接初始化以及完成连接过程。
2、数据通讯,在连接已建立的基础上进行数据的交换以及完成通讯过程。
3、完成通讯之后即关闭网络通讯连接,释放资源。
使用小秘密:
在程序调用Connector.open()相关方法的时候,如果您的J2ME程序是没有经过签名的,系统会弹出一个是否允许的对话框,其实,我们在开发的过程中也可以调用下面的代码进行一些权限的判断,然后做出适当的动作。
MIDlet. checkPermission("javax.microedition.io.Connector.file.read");
MIDlet. checkPermission("javax.microedition.io.Connector.file.write");
MIDlet.checkPermission("javax.microedition.io.Connector.http")
其他一些权限检查请查看相关的APIs文档。
简单用法代码片段
// Create a ContentConnection