国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

介紹J2ME通用聯網框架

2019-11-18 16:09:50
字體:
來源:轉載
供稿:網友
    通用聯網框架在J2ME平臺中扮演著十分重要的角色,如果沒有它,我們寫的應用程序對外人來說只能說“神秘”,而應用了通用聯網框架進行聯網的程序就顯得“神奇”了。本文將對通用聯網框架進行整體的分析,具體的應用會在后續的文章詳細講述。

    Generic Connection Framework(以下簡稱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的接口層次圖來了解通用聯網框架是最好的辦法,下面我們看看它的層次結構。
介紹J2ME通用聯網框架

最上層的接口是Connection,其他的接口都從他那里繼承。在Connection中只定義了一個方法close()。在我們的現實世界中通常使用的是分組數據交換和電路交換,因此在聯網框架中相應的定義了DatagramConnection和StreamConnection。由于在基于流傳輸中我們需要對輸入流和輸出流通是具有操作的能力,因此StreamConnection擴展了InputConnection和OutputConneciton,我們經常使用的Conn.openInputStream(),conn.openOutputStream()方法都是在這兩個重要的接口中定義的。StreamConnectionNotifier接口定義了連接監聽器應該具備的能力,它的方法acceptAndOpen()方法返回一個StreamConnection類型的連接,ServerSocketConnection繼承了StreamConnectionNotifier接口,這樣如果你做socket server的時候就可以通過使用這樣的URL,socket://:port在你的設備上建立監聽端口等待連接。SocketConnection繼承了StreamConnection正好可以和ServerSocketConnection交相輝映。UDPDatagramConnection則是為了在分組數據交換中使用,他繼承了DatagramConnection接口。ContentConnection接口中只定義了三個方法getEncoding(),getLength()和getType(),我們非常熟悉的HttpConnection就是他的子類,在HttpConnection中定義了大量的操作,Http聯網功能也是MIDP規范中要求廠商必須支持的連接方式。現在你應該對層次比較清楚了吧,繼續往下看如何使用GCF。

    GCF的是使用非常簡單,主要集中在Connector的open()方法上。我們要做的就是提供一個標準的URL參數傳遞給open方法,例如為了得到一個HttpConnection我們應該寫類似下面的代碼:

String url = “http://myip:myport/myservlet”;
HttpConnection httpConn = (HttpConnection)Connector.open(url);

我們應該清楚這個URL的格式如何定義的,有興趣的話你可以參考RFC2396,我這里只列入他的基本格式:{scheme}:[{target}][{parms}] ,針對不同的網絡通信方式,你要做的就是寫出不同的URL,并通過強制轉換得到你需要的連接類型。這篇文章不提供如何進行數據傳輸的操作,你可以參考MIDP API文檔中HttpConnection接口中的詳細說明,也可以參考開發J2ME聯網應用程序,在數據傳輸結束后不要忘記關閉連接,這時候你就應該使用Connection中定義的close()方法了。

   try {
    // Here close any open streams
    conn.close();
   } catch (IOException ioe) {
    // Handle the exception.
    // Throw the exception, ignore it, or return an error.
   }

    至此,關于GCF的整體介紹就結束了。我們應該清楚GCF的接口層次關系、掌握如何使用GCF。同時不要忘記把這個框架的設計銘記于心,事實上我覺得CLDC和MIDP中很多設計都值得我們去多多的思考。

(出處:http://www.survivalescaperooms.com)



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 万州区| 咸宁市| 积石山| 吴堡县| 老河口市| 天台县| 博野县| 孙吴县| 泾川县| 且末县| 沙雅县| 积石山| 凌源市| 吉水县| 淮滨县| 泗水县| 东丰县| 冕宁县| 咸宁市| 六盘水市| 垦利县| 青铜峡市| 陆河县| 新巴尔虎右旗| 麦盖提县| 沙田区| 鹤庆县| 巧家县| 余干县| 汪清县| 镇赉县| 新宾| 南漳县| 肥城市| 吐鲁番市| 仁布县| 和田市| 夏河县| 灵武市| 定兴县| 夏河县|