自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

深入了解J2ME網(wǎng)絡(luò)程序設(shè)計(jì)

開發(fā) 前端
上節(jié)我們學(xué)習(xí)了通過(guò)J2ME記錄管理系統(tǒng)(RMS)開發(fā)本地設(shè)備數(shù)據(jù)存儲(chǔ),這里介紹一下J2ME另外一個(gè)很重要的特性就是使用J2ME連接結(jié)構(gòu)打開網(wǎng)絡(luò)連接并傳送數(shù)據(jù)的能力。

本文和大家重點(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例子的功能。

J2ME網(wǎng)絡(luò)程序設(shè)計(jì)

  前面我介紹了通過(guò)記錄管理系統(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ǎn)化的但是功能完全的連接結(jié)構(gòu),允許傳送數(shù)據(jù)的簡(jiǎn)單的連接。MID簡(jiǎn)表有進(jìn)了一步,它還定義了一個(gè)HTTPConnection接口,用于網(wǎng)絡(luò)上的HTTP訪問(wèn)。

二、修改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接口來(lái)執(zhí)行傳送數(shù)據(jù):Stream Connection和Content Connection。

三、使用Stream Connection存取數(shù)據(jù)

  Stream Connection接口定義了一個(gè)流連接必須有的最小的功能。現(xiàn)在我們對(duì)address bookMIDLet應(yīng)用程序做出修改:

  刪除address bookMIDLet()構(gòu)造程序中的dbAddress.addAddress()方法調(diào)用,這個(gè)方法調(diào)用可以刪除,因?yàn)樾碌某绦驔]有必要自己動(dòng)手向數(shù)據(jù)庫(kù)中添加數(shù)據(jù),新的程序?qū)⑹褂肑2ME的網(wǎng)絡(luò)功能取回儲(chǔ)存在網(wǎng)上的地址。

  把特定的連接代碼添加到AddressDB構(gòu)造程序中。這兩個(gè)例子中的特定連接代碼只是簡(jiǎn)單地通過(guò)TCP/IP取回地址并手動(dòng)地把每個(gè)地址添加到通訊簿中。

  1. StreamConnectionconnStream=null;InputStreaminStream=null;  
  2. byte[]b=newbyte[255];  
  3. Stringaddress,name;  
  4. intcommalocation=0;  
  5. try{  
  6. connStream=(StreamConnection)  
  7. Connector.open("http://localhost/address book.txt");  
  8. inStream=connStream.openInputStream();  
  9. intcount=inStream.read(b);  
  10. address=newString(b);  
  11. addressaddress=address.trim();  
  12. StringTokenizerst=newStringTokenizer(address,"");  
  13. while(st.hasMoreTokens()){  
  14. address=st.nextToken();  
  15. commalocation=address.indexOf(',');  
  16. name=address.substring(0,commalocation);  
  17. addressaddress=address.substring(commalocation+1);  
  18. addAddress(name,address);  
  19. }  
  20. }  
  21. catch(IOExceptione){  
  22. System.out.println(e);  
  23. e.printStackTrace();  
  24. }  
  25.  

   上面的代碼能夠工作,但是有點(diǎn)小問(wèn)題。必須限定字節(jié)數(shù)組長(zhǎng)度為255,因?yàn)镾treamConnection接口不能估計(jì)下載數(shù)據(jù)的大小。為此,我可以利用ContentConnection接口以及很好使用的getLength()方法。

  另外一個(gè)問(wèn)題就是J2ME中缺少J2SE的java.util.StringTokenizer類。雖然可以自己寫字符串分析器類,但是也可以從網(wǎng)上找到StringTokenizer類。

【編輯推薦】

  1. JSON數(shù)據(jù)在J2ME下的構(gòu)造和解析
  2. 深入了解J2ME Polish+Eclipse配置過(guò)程
  3. 探討J2ME/J2EE的JSON數(shù)據(jù)交換方式
  4. Eclipse中進(jìn)行JVM內(nèi)存設(shè)置
  5. 解析Linux下如何用eclipse搭建J2ME開發(fā)環(huán)境

 

責(zé)任編輯:佚名 來(lái)源: j2megame.org
相關(guān)推薦

2010-09-30 10:11:49

J2ME PolishEclipse

2010-09-29 08:57:04

J2ME前景

2010-09-29 14:54:34

J2MEHashtable

2010-09-30 13:06:33

Myeclipse J

2010-02-04 13:15:59

Android J2M

2010-09-29 13:09:48

OTAJ2ME程序

2010-09-30 13:48:10

J2ME游戲引擎

2010-10-09 15:07:09

J2MEWeb服務(wù)

2010-09-29 09:19:39

J2ME開發(fā)工具

2010-09-29 09:54:09

J2ME應(yīng)用程序

2010-10-09 16:13:10

J2ME應(yīng)用程序

2009-06-08 18:17:00

適應(yīng)中國(guó)網(wǎng)絡(luò)J2ME連網(wǎng)程序

2010-09-30 09:56:26

J2ME Polish

2009-03-22 09:38:03

Android移植J2ME

2009-06-23 11:30:16

RMSJ2ME

2010-09-30 13:28:55

J2ME圖形

2009-03-12 10:22:27

EclipseJ2MEJDT

2010-09-30 13:39:52

2009-06-08 21:34:09

J2EEJ2SEJ2ME

2010-09-29 13:50:31

J2MEJ2SE
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)