新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 開發MIDP聯網應用程序

        開發MIDP聯網應用程序

        作者: 時間:2012-05-07 來源:網絡 收藏

        ♦引言

        本文引用地址:http://www.104case.com/article/149128.htm

        在上講中,我們介紹了如何利用RecordStore把數據保存在終端內。本講,我們將闡述JAVA網絡的相關功能。由于N800終端只能使用HTTP通信,所以我們將以HTTP為主要范例進行講解。到目前為止,只能制作終端內的單機型,如果利用網絡,連接網絡服務器,那么就能夠制作出多種

        1.利用網絡

        1.1.GenericConnectionFrameWork

        J2ME應該能支持各種手機終端。由于終端不同其網絡功能及文件I/O功能也迥然不同,網絡和文件I/O關聯的圖書館所需的條件也不同。

        為了解決上述問題,JSME的CLDC采用了GenericConnectionframework。GenericConnectionframework擁有不同終端所需的省空間網絡功能以及文件I/O功能。廣泛應用J2SE的java.io和java.net包里的網絡、文件I/O功能,并準備7個interface。這樣,為能支持各種手機終端的通信功能,只限定interface,在每個手機終端上都能自由安裝。不支持手機終端連接的實際安裝不能進行。各種interface的說明如表1所示、層次結構如圖1所示。

        360截圖20120507113658104.jpg

        點擊圖片看大圖

        表1

        圖1

        1.2.ConnectionInterface

        Connectioninterface在GenericConnectionframework中是連接interface的基礎interface。其他的連接interface是從Connectioninterface派生而來的。

        1.3.Connector類

        使用Connector類的static方法open(StringconnectString)入網。

        Connectioncon=Connector.open(http://www.nec-mfriend.com/);

        ex.1

        例如、如ex.1所示,在open方法的自變量中輸入“http://www.nec-mfiend.com/”,就可以實現與www.nec-mfriend.com服務器進行http通信。

        而GenericConnectionframework的全部鏈接都是利用Connector類的open方法完成的。也就是說,即使鏈接類型不同,也能以同樣的方法完成。J2ME由于這樣的設計而擁有豐富的擴展性,對于上述新的裝置它也配備了簡單的支持系統。

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

        {protocol}:[{target}][{params}]

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

        360截圖20120507113844495.jpg

        表2

        *N800不支持socket通信、數據電報通信,而N820支持socket通信。

        在Target部分指定服務器的用戶名、端口號和文件名等。若有必要的添加信息則在Params部分指定。

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

        staticConnectionopen(StringconnectString,intmode)

        從connectString中制作Connection、打開鏈接,若要使用mode鏈接則需指定accessmode。在accessmode中,可以指定Connector.READ,Connector.READ_WRITE和Connector.WRITE,若不指定,則為Connector.READ_WRITE。在Protocol中不能指定accessmode時,則放棄IllegalArgumentException。

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

        360截圖20120507113944271.jpg

        1.4.HTTP通信

        現在,我們對N800所支持的HTTP通信進行闡述。利用HTTP通信可以連接WEB服務器。例如,可以把手機終端難以處理的復雜問題交給WEB服務器處理,得出結果。HTTP通信采用方法作為標準,但是,采用作為基本方法的終端卻不能進行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方式。

        360截圖20120507114037144.jpg

        接下來,讓我們試著用多種request與服務器進行通信。

        1.5.利用GET

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

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

        con.setRequestMethod(HttpConnection.GET);

        ex.2

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

        Stringres=;

        DataInputStreamin=con.openDataInputStream();

        intinput;

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

        res=res+(char)input;

        }

        in.close();

        ex.3

        以下實際是與服務器通信,獲取html文件的sample。為簡單介紹sample的操作,得把通信結果,即獲取的html文件內容,輸入控制臺。因此,此sample是以在模擬器上面操作為前提的。

        importjava.io.DataInputStream;

        importjava.io.IOException;


        上一頁 1 2 3 4 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 团风县| 建宁县| 平顶山市| 昔阳县| 青河县| 英山县| 乌兰浩特市| 罗田县| 麻阳| 安平县| 德州市| 长宁县| 库尔勒市| 沙河市| 承德市| 手游| 博湖县| 云梦县| 莱西市| 安吉县| 新巴尔虎右旗| 郧西县| 勃利县| 中宁县| 中方县| 余姚市| 渭源县| 湄潭县| 丽水市| 舟曲县| 汉川市| 乌鲁木齐市| 汉中市| 沂南县| 建水县| 股票| 伊金霍洛旗| 信宜市| 蒙自县| 凤翔县| 碌曲县|