分享
 
 
 

开发MIDP联网应用程序

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

♦ 引言

在上讲中,我们介绍了如何利用Record Store把数据保存在终端内。本讲,我们将阐述MIDP java网络的相关功能。由于N800终端只能使用HTTP通信,所以我们将以HTTP为主要范例进行讲解。到目前为止,只能制作终端内的单机型应用程序,假如利用网络,连接网络服务器,那么就能够制作出多种应用程序。

1. 利用网络

1.1. Generic Connection Frame Work

J2ME应该能支持各种手机终端。由于终端不同其网络功能及文件I/O功能也迥然不同,网络和文件I/O关联的图书馆所需的条件也不同。

为了解决上述问题,JSME的CLDC采用了Generic Connection framework。Generic Connection framework拥有不同终端所需的省空间网络功能以及文件I/O功能。广泛应用J2SE的java.io和java.net包里的网络、文件I/O功能,并预备7个interface。这样,为能支持各种手机终端的通信功能,只限定interface,在每个手机终端上都能自由安装。不支持手机终端连接的实际安装不能进行。各种interface的说明如表1所示、层次结构如图1所示。

Interface

作用

Connection

成为其他interface基础的interface

StreamConnectionNotifier

具有socket通信连接通知功能的interface

InputConnection

具有接收数据功能的interface

OutputConnection

具有发送数据功能的interface

DatagramConnection

具有连接UDP的数据电报通信功能的interface

StreamConnection

具有socket通信接收/发送功能的interface

ContentConnection

具有通信内容调查功能的interface

HttpConnection

具有http通信功能的interface

表 1

图 1

1.2. Connection Interface

Connection interface在Generic Connection framework中是连接interface的基础interface。其他的连接interface是从Connection interface派生而来的。

1.3. Connector 类

使用Connector类的static方法open (String connectString)入网。

Connection con = Connector.open("http://www.nec-mfriend.com/");

ex. 1

例如、如ex. 1所示,在open方法的自变量中输入“http://www.nec-mfiend.com/”,就可以实现与www.nec-mfriend.com服务器进行http通信。

而Generic Connection framework的全部链接都是利用Connector类的open方法完成的。也就是说,即使链接类型不同,也能以同样的方法完成。J2ME由于这样的设计而拥有丰富的扩展性,对于上述新的装置它也配备了简单的支持系统。

按照下述形式指定Open方法的自变量。

{PRotocol}:[{target}][{params}]

在Protocol部分可以指定如下所示的Protocol。

链接方式

file

文件 I/O

comm.

串行端口通信

socket

Socket通信

datagram

数据电报通信

http

Web服务器通信

表 2

*N800不支持socket通信、数据电报通信,而N820支持socket通信。

在Target部分指定服务器的用户名、端口号和文件名等。若有必要的添加信息则在Params部分指定。

Open方法也可以指定其他的自变量。

static Connection open(String connectString, int mode)

从connectString中制作Connection、打开链接,若要使用mode链接则需指定access mode。在access mode中,可以指定Connector.READ,Connector.READ_WRITE和Connector.WRITE ,若不指定,则为Connector.READ_WRITE 。在Protocol中不能指定access mode时,则放弃IllegalArgumentException。

下表是其他Connector类的static方法。

方法

作用

DataInputStream openDataInputStream(String connectString)

从connectString中制作新的DataInputStream 并打开。

DataOutputStream openDataOutputStream(String connectString)

从connectString中制作新的DataOutputStream并打开。

InputStream openInputStream(String connectString)

从connectString中制作新的InputStream并打开。

OutputStream openOutputStream(String connectString)

从connectString中制作新的OutputStream并打开。

1.4. HTTP 通信

现在,我们对N800所支持的HTTP通信进行阐述。利用HTTP通信可以连接WEB服务器。例如,可以把手机终端难以处理的复杂问题交给WEB服务器处理,得出结果。HTTP通信采用MIDP方法作为标准,但是,采用MIDP作为基本方法的终端却不能进行HTTP通信,或者有很大的限制,这一点请注重。

为能在N800中使用HTTP通信需遵从以下规定。

• 要实现MIDlet通信必须在JAD(ADF)文件中设定MIDlet-UseNetwork(参考3.JAD(ADF)文件)为YES。.

• 最大发送量为10kbyte。

大于10kbyte时,超出部分被清除,小于10kbyte的数据才是有效的。

• 最大接收量为100kbyte。

大于100kbyte时,超出部分被清除,小于100kbyte的数据才是有效的。

• 连接处URL

从http://开始,包含http://,最多为512byte。不分大/小写。

HTTP通信由request和response两部分组成。从客户发出的request信息传到服务器,服务器接收request,返还response信息。

HTTP通信主要有下述三种request方式。

方式

作用

GET

要求指定的文件。

HEAD

要求指定文件的header信息。

POST

要求向指定文件发送信息,并得出结果。

接下来,让我们试着用多种request与服务器进行通信。

1.5. 利用GET

利用GET可以读取服务器上的文件。在使用GET之前,如下所示需在已完成的HttpConnection方法的setRequestMethod方法中,指定HttpConnection的static变数GET。

HttpConnection con = (HttpConnection)Connector.open("http://www.nec-mfriend.com/");

con.setRequestMethod(HttpConnection.GET);

ex. 2

如下所示可以利用DataInputStream获取response。

String res="";

DataInputStream in = con.openDataInputStream();

int input;

while((input = in.read())!=-1){

res = res + (char)input;

}

in.close();

ex. 3

以下实际是与服务器通信,获取Html文件的sample。为简单介绍sample的操作,得把通信结果,即获取的html文件内容,输入控制台。因此,此sample是以在模拟器上面操作为前提的。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有