仓酷云 发表于 2015-1-18 11:16:16

发布一篇先容J2ME通用联网框架

比如模式、敏捷方法什么的,这些思想好,但是实施的人没有理解而且没有正确运用这些知识导致了开发周期的延长。比如说对象,通过getName()方法不能获取对象的名字。
通用联网框架在J2ME平台中饰演着非常主要的脚色,假如没有它,我们写的使用程序对外人来讲只能说“奥秘”,而使用了通用联网框架举行联网的程序就显得“奇妙”了。本文将对通用联网框架举行全体的剖析,详细的使用会在后续的文章具体报告。
GenericConnectionFramework(以下简称GCF)是在CLDC中界说的,因为挪动信息设备的资本受限特征,以是java.net和java.io包不合适在这里利用。实际天下中利用着林林总总的收集通讯协定,这使得计划好这个框架十分不简单,最少我是这么以为的。但是当我们剖析GCF的时分能够分明地发明它有以下几个特征:基于接口计划,便于扩大、供应创立毗连的工场办法、利用尺度URL简化了程序员的事情。当我们观察CLDC1.1的api的时分我们能够发明个中界说了8个接口、一个Connector类和一个ConnectionNotFoundException非常。在MIDP2.0中举行了扩大,供应了HttpConnection、HttpsConnection接口,如许使得MIDlet具有了经由过程Http大概Https协定与server通讯的才能,供应了SocketConnection、ServerSocketConnection、UDPDatagramConnection接口,使得MIDlet可以在TCP/IP层经由过程socket举行通讯大概利用数据报举行通讯的才能。至于CommConnection和PUSH手艺在这里不报告。
分离GCF的接口条理图来懂得通用联网框架是最好的举措,上面我们看看它的条理布局。

最下层的接口是Connection,其他的接口都从他那边承继。在Connection中只界说了一个办法close()。在我们的实际天下中一般利用的是分组数据互换和电路互换,因而在联网框架中响应的界说了DatagramConnection和StreamConnection。因为在基于传播输中我们必要对输出流和输入流畅是具有操纵的才能,因而StreamConnection扩大了InputConnection和OutputConneciton,我们常常利用的Conn.openInputStream(),conn.openOutputStream()办法都是在这两个主要的接口中界说的。StreamConnectionNotifier接口界说了毗连监听器应当具有的才能,它的办法acceptAndOpen()办法前往一个StreamConnection范例的毗连,ServerSocketConnection承继了StreamConnectionNotifier接口,如许假如你做socketserver的时分就能够经由过程利用如许的URL,socket://:port在你的设备上创建监听端口守候毗连。SocketConnection承继了StreamConnection恰好能够和ServerSocketConnection交相照映。UDPDatagramConnection则是为了在分组数据互换中利用,他承继了DatagramConnection接口。ContentConnection接口中只界说了三个办法getEncoding(),getLength()和getType(),我们十分熟习的HttpConnection就是他的子类,在HttpConnection中界说了大批的操纵,Http联网功效也是MIDP标准中请求厂商必需撑持的毗连体例。如今你应当对条理对照分明了吧,持续往下看怎样利用GCF。
GCF的是利用十分复杂,次要会合在Connector的open()办法上。我们要做的就是供应一个尺度的URL参数传送给open办法,比方为了失掉一个HttpConnection我们应当写相似上面的代码:
Stringurl=“http://myip:myport/myservlet”;
HttpConnectionhttpConn=(HttpConnection)Connector.open(url);
我们应当分明这个URL的格局怎样界说的,有乐趣的话你能够参考RFC2396,我这里只列进他的基础格局:{scheme}:[{target}][{parms}],针对分歧的收集通讯体例,你要做的就是写出分歧的URL,并经由过程强迫转换失掉你必要的毗连范例。这篇文章不供应怎样举行数据传输的操纵,你能够参考MIDPAPI文档中HttpConnection接口中的具体申明,也能够参考开辟J2ME联网使用程序,在数据传输停止后不要健忘封闭毗连,这时候候你就应当利用Connection中界说的close()办法了。
try{
  //Herecloseanyopenstreams
  conn.close();
 }catch(IOExceptionioe){
  //Handletheexception.
  //Throwtheexception,ignoreit,orreturnanerror.
 }
至此,关于GCF的全体先容就停止了。我们应当分明GCF的接口条理干系、把握怎样利用GCF。同时不要健忘把这个框架的计划铭刻于心,现实上我以为CLDC和MIDP中良多计划都值得我们往多多的思索。

专门做了这个例子;而java的这个例子好像就是为了教学而写的,很多教学目的的例子是不考虑优化、性能的。

若天明 发表于 2015-1-20 19:02:47

是一种使网页(Web Page)产生生动活泼画面的语言

海妖 发表于 2015-1-20 20:28:16

如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。

金色的骷髅 发表于 2015-1-21 08:19:15

是一种突破用户端机器环境和CPU

admin 发表于 2015-1-26 23:21:36

Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台

爱飞 发表于 2015-1-27 16:30:18

是一种突破用户端机器环境和CPU

冷月葬花魂 发表于 2015-2-3 23:46:58

是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言

再现理想 发表于 2015-2-9 07:34:11

Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)

不帅 发表于 2015-2-14 16:54:14

J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。

愤怒的大鸟 发表于 2015-2-28 00:50:04

设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧

山那边是海 发表于 2015-3-8 14:13:05

我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。

乐观 发表于 2015-3-16 00:51:35

是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言

小女巫 发表于 2015-3-22 18:10:55

Java是一种计算机编程语言,拥有跨平台、面向对java
页: [1]
查看完整版本: 发布一篇先容J2ME通用联网框架