开发MIDP联网应用程序

2016-02-19 13:00 4 1 收藏

图老师小编精心整理的开发MIDP联网应用程序希望大家喜欢,觉得好的亲们记得收藏起来哦!您的支持就是小编更新的动力~

【 tulaoshi.com - 编程语言 】

♦ 引言

  在上讲中,我们介绍了如何利用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开发MIDP联网应用程序
  图 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服务器通信

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)表 2

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

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  在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是以在模拟器上面操作为前提的。

  

来源:http://www.tulaoshi.com/n/20160219/1602738.html

延伸阅读
标签: Web开发
在过去,由于为了获得新数据而不得不重新加载web页面(或者加载其他页面)导致web应用程序发展被限制。虽然有其他方法可用(不加载其他页面),但是这些技术都没有被很好地支持而且有bug成灾的趋向。在过去的几个月里,一个过去并不被广泛支持的技术已经被越来越多的web冲浪者(web surfers??是指浏览器还是浏览者?)所接受,它给了开发...
标签: Delphi
笔者在前一段的工作中,需要开发一套简单的网络数据传输程序。由于平时常用Delphi做点开发,故此次也不例外。Delphi 7中带有两套TCP Socket组件:Indy Socket组件(IdTCPClient和IdTCPServer)和Delphi原生的TCP Socket组件(ClientSocket和ServerSocket)。但是,Borland已宣称ClientSocket和ServerSocket组件即将被废弃,建议用相应的I...
标签: Web开发
一、简介 AJAX,一个异步JavaScript和XML的缩略词,是最近出来的技术词语。异步意味着你可以经由超文本传输协议(HTTP)向一个服务器发出请求并且在等待该响应时继续处理另外的数据。这就意味着,例如,你可以调用一个服务器端脚本来从一个数据库中以XML方式检索数据,把数据发送到存储在一个数据库的服务器脚本,或者简单地装载一个XML...
标签: Delphi
  一、引言 近些年来,随着互联网的普及和推广,传统的单机模式和局域中的c/s模式的应用程序越来越不能满足信息共享的要求。因此,一种新的基于浏览器的b/s的应用程序的开发方式被提了出来。新的开发方案以其客户端的免维护、免配置、程序能根据服务器的信息能够自动更新升级;服务器端多层模式的应有提高处理的效率和安全性越...
标签: Java JAVA基础
JBuilder是一个开放的Java IDE,它集成了Tomcat、Weblogic等服务器。虽然JDK、Tomcat、Weblogic不断升级,我们仍可以在JBuilder中使用它们的最新版本。由于Tomcat服务器的配置比较复杂,习惯了Windows平台的程序员常常对Tomcat的使用感到困惑。本文给出了一个使用Tomcat环境下的数据库连接池Database Connection Pool (DBCP) 的...

经验教程

210

收藏

11
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部