J2ME網(wǎng)絡(luò)連接框架體系
????? J2ME技術(shù)提供了移動(dòng)空間融入網(wǎng)絡(luò)中的聯(lián)網(wǎng)功能,因此使得手機(jī)等移動(dòng)設(shè)備的衛(wèi)星導(dǎo)航系統(tǒng)跟手機(jī)網(wǎng)絡(luò)游戲的應(yīng)用成為了現(xiàn)實(shí)。在MIDP中處理移動(dòng)信息設(shè)備網(wǎng)絡(luò)連接功能的最主要技術(shù)是javax.microedition.io中各個(gè)類和接口,以及java.io包中的(I/O)接口為數(shù)據(jù)流提供了系統(tǒng)輸入和輸出功能。
?? J2ME的網(wǎng)絡(luò)通訊根據(jù)通訊協(xié)議的不同提供了不同的通訊接口,包括TCP協(xié)議、UDP協(xié)議以及HTTP協(xié)議等主要網(wǎng)絡(luò)協(xié)議,都分別提供了相應(yīng)的連接訪問接口。另外,在此基礎(chǔ)上,還提供了處理文件連接以及串口進(jìn)行網(wǎng)絡(luò)連接技術(shù),如操作文件和實(shí)現(xiàn)藍(lán)牙功能。以下對(duì)J2ME網(wǎng)絡(luò)連接框架進(jìn)行總結(jié)。
?? 一、J2ME網(wǎng)絡(luò)連接基本通訊類型
?? 1、通訊數(shù)據(jù)報(bào)類型:數(shù)據(jù)報(bào)通訊在javax.microedition.io.DatagramConnection類中進(jìn)行了定義,用于處理UDP通訊協(xié)議。
?? 2、TCP通訊協(xié)議類型:TCP通訊由javax.microedition.io.StreamConnectionNotifier類進(jìn)行了通訊處理。
?? 3、基本串行輸入輸出類型:串行輸入輸出接口分別在 javax.microedition.io包中的InputConnection和OutputConnection中進(jìn)行定義。
?? 4、超文本傳輸協(xié)議HTTP類型:基于HTTP協(xié)議的通訊接口在javax.microedition.io.HttpConnection中定義。
?? 二、J2ME網(wǎng)絡(luò)通訊過程步驟
?? 網(wǎng)絡(luò)通訊連接的IO數(shù)據(jù)流過程基本步驟分別是建立連接、網(wǎng)絡(luò)通訊、連接關(guān)閉。
?? 1、建立連接,創(chuàng)建與服務(wù)端的連接初始化以及完成連接過程。
?? 2、網(wǎng)絡(luò)通訊,在連接已建立的基礎(chǔ)上進(jìn)行數(shù)據(jù)的交換以及完成通訊過程。
?? 3、完成通訊之后即關(guān)閉網(wǎng)絡(luò)通訊連接,釋放資源。
?? 三、J2ME中各通訊協(xié)議的連接方法
?? 在J2ME中定義了javax.microedition.io.Connector類用于專門提供各種不同協(xié)議連接建立的靜態(tài)方法,用于打開各種不同的連接,使用的方法是Connector.open()方法,返回的是Connection對(duì)象。
?? 1、打開文件方法,建立文件連接進(jìn)行IO通訊
?? Connection conn = Connector.open(file://myfile.dat);
?? 2、調(diào)用串口通訊的建立方法
?? Connection conn = Connector.open("comm:0;baudrate=5333");
?? 3、數(shù)據(jù)報(bào)套接字通訊建立
?? Connection conn = Connector.open("datagram://:3322");
?? 4、TCP套接字通訊連接建立
?? Connection conn = Connector.open("socket://localhost:5568");
?? 5、超文本傳輸協(xié)議HTTP連接建立
?? Connection conn = Connector.open(
?? 四、簡(jiǎn)單舉例HTTP通訊
?? ....//聲明代碼
?? HttpConnection httpCon = null;
?? InputStream is = null;
?? OutputStream oStrm = null;
?? ...//連接并封裝數(shù)據(jù)流代碼
?? conn = (HttpConnection) Connector.open(url);
?? iStrm = conn.openInputStream();
?? DataInputStream dis = new DataInputStream(iStrm);
?? ...//讀寫數(shù)據(jù)流代碼
?? int num = dis.readInt();
?? String str = dis.readUTF();
?? oStrm = conn.openOutputStream();
?? oStrm.write(data);
?? .../關(guān)閉連接代碼
?? iStrm.close();
?? conn.close();
??? (轉(zhuǎn)載時(shí)請(qǐng)注明出處并保持鏈接,作為對(duì)作者辛勤勞動(dòng)的尊重,謝謝。)
?
?
鳳凰涅槃/浴火重生/馬不停蹄/只爭(zhēng)朝夕
???? 隱姓埋名/低調(diào)華麗/簡(jiǎn)單生活/完美人生
posted on 2009-02-20 18:22 poetguo 閱讀(3010) 評(píng)論(3) 編輯 收藏 所屬分類: J2ME