- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
J2ME中多线程网络连接编程的分析
引言
J2ME(Java 2 Micro Edition)是Java 2的一个组成部分,它与J2SE、J2EE并称。J2ME是一种高度优化的Java运行环境,主要针对消费类电子设备的,例如蜂窝电话、可视电话、数字机顶盒和汽车导航系统等等。即J2ME是为消费电子产品和手持设备量身定制的Java专用版本。
J2ME的出现使开发跨平台的消费类电子产品的应用软件成为可能。Java语言的与平台无关的特性移植到小型电子设备上,允许移动无线设备之间共享应用程序。它提供了基于HTTP的高级Internet协议,使移动电话能以Client/Server方式直接访问Internet的全部信息,从而使得不同的Client访问不同的资源。
在将来的无线通信时代中,大量的网络应用程序将被开发出来去满足无线移动通讯的要求,而要充分的发挥无线移动通讯设备的通信能力,J2ME网络编程就变得尤为重要。那么为了高效地进行网络编程,就要利用Java语言的多线程编程机制。
1 J2ME的网络连接框架(GCF)
通用连接框架(Generic Connection Framework,GCF)为资源有限的设备提供了一个可扩展的、通用的I/O 框架。GCF 是一组在 javax.microedition.io 包中定义的接口。图 1 显示了 GCF 的类层次结构。
图1 GCF 的类层次结构
在 GCF 中共定义了七个接口 ,其中 Connection 是最基本的连接类型。且同时提供了对数据包和流连接的支持。沿着层次结构向下派生出提供更多功能的接口。例如, StreamConnection 接口支持输入流和输出流, ContentConnection接口又扩展了 StreamConnection 接口以支持对流的内容类型、数据长度和编码格式的确定,HttpConnection接口又扩展了ContentConnection接口以支持对于标准的HTTP请求。如在框架层规定的适用于手机或双向寻呼机的移动信息设备框架MIDP(Mobile Information Device Profile)在其MIDP 1.0 规范只要求设备支持 HTTP 连接协议,而更新的 MIDP 2.0 规范要求同时支持 HTTP 和 HTTPS,后者提供了对更安全的网络连接的支持。
2 网络编程中的多线程
由于目标设备具有内存小,计算能力弱和电池供电等特点,所以如何使应用程序高效的运行就成为开发中的一个大问题.尤其针对手机等移动信息设备时,无线通讯的特点又对我们的程序提出了更高的要求.从代码优化的角度,在网络编程中引入多线程就显得十分重要.
当程序运行的时候,Application Management Software(应用管理软件)首先初始化一个MIDlet,然后调用它的startApp()方法使得MIDlet进入active状态,这条程序分支就是主线程,它执行其他的方法后都会返回到这个分支上来继续执行。然而网络连接是个可能堵塞的操作,意味着它可能长时间都不返回。
在SUN公司的无线开发包WTK中模拟一段网络连接程序运行时,WTK会提示网络连接工作可能会堵塞用户输入,需要创建另外一个线程去进行联网操作。针对以上情况,引入多线程的处理机制。
2.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(sta
您可能关注的文档
- 2013新论文:中职语言教学的实践研究201312344173918399.doc
- 2004公路工程技术标准条文说明(JTGB01-2003).pdf
- 街道第三批实践活动学习调研阶段经验交流讲话.doc
- 名人演讲:国会大厦告别演讲.doc
- 集体劳动合同(外资企业)_1.doc
- 商品房买卖合同_0.doc
- 深入学习实践科学发展观活动领导班子分析检查报告.doc
- 2014电子技术基础-“做中学”电子专业课程教学模式的探索2014514914267734.doc
- 2014电子技术基础-浅谈提高电气设备维修能力的有效途径20145149142633828.doc
- 2012年企业党建思想政治工作总结.doc
最近下载
- 2024-2025学年小学科学二年级下册苏教版(2024)教学设计合集.docx
- 2023-2024年卫生健康委公务员考试录用67人题库及答案.docx VIP
- 《大学影视鉴赏》全套完整版教学课件(共877页PPT).pptx
- 2023-2024学年河北省保定市定州市高一(上)期末英语试卷(含解析).docx
- 《齐桓晋文之事》文言重点句子翻译导学案……详解(刘).docx
- 2025届高考英语二轮复习高效备考策略 .pdf
- 产品思维30讲的关键.pdf
- 五权宪法原理.ppt
- 烟台市2024-2025学年高三(上期)期末考试历史试题(含答案).pdf
- 2023年1月浙江省高考英语真题(附答案及详细解析).pdf
文档评论(0)