快速业务通道

浅析J2ME中多线程网络连接编程 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16

浅析J2ME中多线程网络连接编程

时间:2011-06-16 cndym

引言

J2ME(Java 2 Micro Edition)是Java 2的一个组成部分,它与J2SE、J2EE并 称。J2ME是一种高度优化的Java运行环境,主要针对消费类电子设备的,例如蜂 窝电话、可视电话、数字机顶盒和汽车导航系统等等。即J2ME是为消费电子产品 和手持设备量身定制的Java专用版本。

J2ME的出现使开发跨平台的消费类电子产品的应用软件成为可能。Java语言 的与平台无关的特性移植到小型电子设备上,允许移动无线设备之间共享应用程 序。它提供了基于HTTP的高级Internet协议,使移动电话能以Client/Server方 式直接访问Internet的全部信息,从而使得不同的Client访问不同的资源。

在将来的无线通信时代中,大量的网络应用程序将被开发出来去满足无线移 动通讯的要求,而要充分的发挥无线移动通讯设备的通信能力,J2ME网络编程就 变得尤为重要。那么为了高效地进行网络编程,就要利用Java语言的多线程编程 机制。

J2ME的网络连接框架(GCF)

通用连接框架(Generic Connection Framework,GCF)为资源有限的设备提 供了一个可扩展的、通用的I/O 框架。GCF 是一组在 javax.microedition.io 包中定义的接口。图 1 显示了 GCF 的类层次结构。

浅析J2ME中多线程网络连接编程 - 编程入门网

图1 GCF 的类层次结构

在 GCF 中共定义了七个接口 ,其中 Connection 是最基本的连接类型。且 同时提供了对数据包和流连接的支持。沿着层次结构向下派生出提供更多功能的 接口。例如, StreamConnection 接口支持输入流和输出流, ContentConnection接口又扩展了 StreamConnection 接口以支持对流的内容类 型、数据长度和编码格式的确定,HttpConnection接口又扩展了 ContentConnection接口以支持对于标准的HTTP请求。如在框架层规定的适用于 手机或双向寻呼机的移动信息设备框架MIDP(Mobile Information Device Profile)在其MIDP 1.0 规范只要求设备支持 HTTP 连接协议,而更新的 MIDP 2.0 规范要求同时支持 HTTP 和 HTTPS,后者提供了对更安全的网络连接的支持 。

网络编程中的多线程

由于目标设备具有内存小,计算能力弱和电池供电等特点,所以如何使应用程 序高效的运行就成为开发中的一个大问题.尤其针对手机等移动信息设备时,无线 通讯的特点又对我们的程序提出了更高的要求.从代码优化的角度,在网络编程中 引入多线程就显得十分重要。

当程序运行的时候,Application Management Software(应用管理软件)首先 初始化一个MIDlet,然后调用它的startApp()方法使得MIDlet进入active状态, 这条程序分支就是主线程,它执行其他的方法后都会返回到这个分支上来继续执 行。然而网络连接是个可能堵塞的操作,意味着它可能长时间都不返回。

在SUN公司的无线开发包WTK中模拟一段网络连接程序运行时,WTK会提示网络 连接工作可能会堵塞用户输入,需要创建另外一个线程去进行联网操作。针对以 上情况,引入多线程的处理机制。

1. 利用Thread类与Runnable接口

编写J2ME网络连接应用程序的时候往往借助Command显示部件,调用其事件处 理函数完成网络的连接工作,代码框架如下:

public void commandAction(Command c, Displayable s) {   if(c==sendCommand){ requestConnect();//连接方法   }   else if( c==backCommand){   display.setCurrent(mainForm); }   else{ destroyApp(false); notifyDestroyed(); } } // 获取一个HTTP的连接 private void requestConnect() {   String url= URL.URLString   HttpConnection hpc = null;   try{ hpc = (HttpConnection)Connector.open(url); int status = hpc.getResponseCode(); if(status != HttpConnection.HTTP_OK)   content = "联机失败!"; else   content = "已联机

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号