新聞中心
本文和大家重點(diǎn)討論一下J2ME網(wǎng)絡(luò)程序設(shè)計(jì),javax.microedition.io包內(nèi)的這個(gè)結(jié)構(gòu)包括Connection類和好幾個(gè)很有用的接口(包括Stream Connection、ContentConnection和HTTPConnection)。本文討論這個(gè)包的設(shè)計(jì)并使用Stream Connection和ContentConnection接口增強(qiáng)前面介紹的address bookMIDLet例子的功能。

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),魚峰企業(yè)網(wǎng)站建設(shè),魚峰品牌網(wǎng)站建設(shè),網(wǎng)站定制,魚峰網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,魚峰網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
J2ME網(wǎng)絡(luò)程序設(shè)計(jì)
前面我介紹了通過記錄管理系統(tǒng)(RMS)開發(fā)本地設(shè)備數(shù)據(jù)存儲(chǔ),J2ME另外一個(gè)很重要的特性就是使用J2ME連接結(jié)構(gòu)打開網(wǎng)絡(luò)連接并傳送數(shù)據(jù)的能力。javax.microedition.io包內(nèi)的這個(gè)結(jié)構(gòu)包括Connection類和好幾個(gè)很有用的接口(包括Stream Connection、ContentConnection和HTTPConnection)。本文討論這個(gè)包的設(shè)計(jì)并使用Stream Connection和ContentConnection接口增強(qiáng)前面介紹的address bookMIDLet例子的功能。
一、javax.microedition.io程序包
如果你有使用J2SEjava.net包開發(fā)程序的經(jīng)驗(yàn),你就會(huì)知道它使用的非常廣泛并且提供一些非常高級(jí)的網(wǎng)絡(luò)性能。遺憾的是,由于設(shè)備內(nèi)存的大小,這些高級(jí)特性就不適合有限連接設(shè)備配置CLDC。作為彌補(bǔ),我們有一個(gè)簡化的但是功能完全的連接結(jié)構(gòu),允許傳送數(shù)據(jù)的簡單的連接。MID簡表有進(jìn)了一步,它還定義了一個(gè)HTTPConnection接口,用于網(wǎng)絡(luò)上的HTTP訪問。
二、修改Address Book MIDLet
本節(jié)中的例程與上一節(jié)中記錄管理系統(tǒng)address book例程幾乎一樣,上一節(jié)的例子使用的是本地的數(shù)據(jù)文件,而現(xiàn)在我要介紹的例子使用J2ME網(wǎng)絡(luò)功能從一個(gè)儲(chǔ)存在互聯(lián)網(wǎng)上的文本文件中取回地址。這個(gè)文本文件名為address book.txt,文件中的姓名與地址使用逗號(hào)分隔。我前面曾提到,下列例子使用兩個(gè)不同的J2ME接口來執(zhí)行傳送數(shù)據(jù):Stream Connection和Content Connection。
三、使用Stream Connection存取數(shù)據(jù)
Stream Connection接口定義了一個(gè)流連接必須有的最小的功能?,F(xiàn)在我們對(duì)address bookMIDLet應(yīng)用程序做出修改:
刪除address bookMIDLet()構(gòu)造程序中的dbAddress.addAddress()方法調(diào)用,這個(gè)方法調(diào)用可以刪除,因?yàn)樾碌某绦驔]有必要自己動(dòng)手向數(shù)據(jù)庫中添加數(shù)據(jù),新的程序?qū)⑹褂肑2ME的網(wǎng)絡(luò)功能取回儲(chǔ)存在網(wǎng)上的地址。
把特定的連接代碼添加到AddressDB構(gòu)造程序中。這兩個(gè)例子中的特定連接代碼只是簡單地通過TCP/IP取回地址并手動(dòng)地把每個(gè)地址添加到通訊簿中。
- StreamConnection connStream=null;InputStreaminStream=null;
- byte[]b=newbyte[255];
- Stringaddress,name;
- intcommalocation=0;
- try{
- connStream=(StreamConnection)
- Connector.open("http://localhost/address book.txt");
- inStream=connStream.openInputStream();
- intcount=inStream.read(b);
- address=newString(b);
- addressaddress=address.trim();
- StringTokenizerst=newStringTokenizer(address,"");
- while(st.hasMoreTokens()){
- address=st.nextToken();
- commalocation=address.indexOf(',');
- name=address.substring(0,commalocation);
- addressaddress=address.substring(commalocation+1);
- addAddress(name,address);
- }
- }
- catch(IOExceptione){
- System.out.println(e);
- e.printStackTrace();
- }
上面的代碼能夠工作,但是有點(diǎn)小問題。必須限定字節(jié)數(shù)組長度為255,因?yàn)镾treamConnection接口不能估計(jì)下載數(shù)據(jù)的大小。為此,我可以利用ContentConnection接口以及很好使用的getLength()方法。
另外一個(gè)問題就是J2ME中缺少J2SE的java.util.StringTokenizer類。雖然可以自己寫字符串分析器類,但是也可以從網(wǎng)上找到StringTokenizer類。
文章題目:深入了解J2ME網(wǎng)絡(luò)程序設(shè)計(jì)
標(biāo)題鏈接:http://www.5511xx.com/article/cdhjohi.html


咨詢
建站咨詢
