<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    冰浪

    哥已不再年輕 - 堅定夢想,畢生追求!
    posts - 85, comments - 90, trackbacks - 0, articles - 3
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    CMNET和CMWAP網絡連接

    Posted on 2009-04-09 09:11 冰浪 閱讀(216) 評論(0)  編輯  收藏 所屬分類: J2ME

          J2me上的GPRS網絡接入點有兩個,一個就是CMNET,一個就是CMWAP。一般移動夢網,百寶箱就是掛在CMWAP上的。

     

    CMNET

    CMNET就是一般的互聯網的網絡接入點。我們一般在SUN那里看到的J2ME實例代碼都是基于CMNET接入點的網絡下載。一般來說,CMNET可以連接所有的網絡站點。下面就是我在開發仙劍的CMNET的下載資源包的代碼片斷。

       /***************************************************************************

       * 下載網絡文件

       * @param url String 要下載的文件的地址URL

       * @return byte[] 如果下載成功,返回文件的字節緩沖;

       *             如果下載失敗,返回null

       */

     public byte[] download_CMNET(String url) {

        ContentConnection c;

        InputStream is = null;

        byte[] data = null;

        try {

           c= (ContentConnection)Connector.open("http://"+ServerName+"/"+url,Connector.READ,true);

           is = c.openInputStream();

           int dataLength = (int) c.getLength();

           if (dataLength == -1) {

             ByteArrayOutputStream bStrm = new ByteArrayOutputStream();

             int ch;

             while ( (ch = is.read()) != -1)

               bStrm.write(ch);

             data = bStrm.toByteArray();

             bStrm.close();

           }

           else {

             data = new byte[dataLength];

             Data_Read_Buf(is,data,0,dataLength);

           }

           is.close();

           c.close();

        }catch (Exception e) {

          data = null;

        }

        c= null;

        return data;

     }

     

    代碼很普通,不過需要注意的有以下兩點。

    1.       getLength()并不是一定都有效,比如我發現在Nokia 40的手機上這個函數有效,但是在Nokia 60的手機上,這個函數通常都無效。所以我們通常都必須要有另外一個下載方式,既是從while循環不斷從輸入流中一個一個讀byte,如果讀出為-1,則表示輸入流數據讀完。

    2.       Connector.open最后一個參數是表示是否允許timeout,通常我們都得設置true,因為GPRS網路經常中斷,那么必須有個timeout來退出連接。依照我的經驗,一般如果能夠執行完c.openInputStream()后,就表明連接上了,只要連接上后,數據的下載是比較快的(也就是說網絡連接是最慢的)。

     

    CMWAP

           MOTO的手機通常都是默認接入點就是CMWAP。在手機上的“網頁“->”網頁設定中可以設置默認的接入點。一般中國大陸的出產的MOTO手機都是設置的移動夢網”的網絡接入點,起始就是CMWAP接入點。而MOTO最可惡的一點就是一旦默認接入點是CMWAP,那么所有的J2ME應用程序都無法訪問CMNET。而Nokia 40雖然默認的接入點是CMWAP,但是運行中可以自動檢查CMNET來訪問CMNET

           解決MOTO的網絡連接有兩個辦法:

    1.       網頁“->”網頁設定中新建一個網頁,然后不需要填寫任何參數,設置成默認后,它就可以讓手機上J2ME程序通過CMNET訪問網絡了。

    2.       通過移動的代理來實現通過CMWAP訪問互聯網。下面是仙劍中使用CMWAP下載資源包的代碼片斷:

    /***************************************************************************

     * 下載網絡文件

     * @param url String 要下載的文件的地址URL

     * @return byte[] 如果下載成功,返回文件的字節緩沖;

     *             如果下載失敗,返回null

     */

     public byte[] download_CMWAP(String url) {

     HttpConnection c;

     InputStream is = null;

     byte[] data = null;

     try {

         c= (HttpConnection)Connector.open("http://10.0.0.172:80/"+url,Connector.READ,true);

         c.setRequestProperty("X-Online-Host",ServerName);

         c.setRequestProperty("Accept", "*/*");

         is = c.openInputStream();

         int dataLength = (int) c.getLength();

         if (dataLength == -1) {

           ByteArrayOutputStream bStrm = new ByteArrayOutputStream();

           int ch;

           while ( (ch = is.read()) != -1)

             bStrm.write(ch);

           data = bStrm.toByteArray();

           bStrm.close();

         }

         else {

           data = new byte[dataLength];

           Data_Read_Buf(is,data,0,dataLength);

         }

         is.close();

         c.close();

     }catch (Exception e) {

        data = null;

     }

     c= null;

     return data;

     }

    比如我們要下載

    http://xxx.xxx.xxx.xxx/BB/AA.dat,那么上面的ServerName= ”xxx.xxx.xxx.xxx”, url = ”BB/AA.dat”

    (注:轉于http://blog.csdn.net/tangl_99/archive/2004/11/18/185086.aspx

    主站蜘蛛池模板: 亚洲一区中文字幕在线观看| 亚洲一区二区三区在线观看精品中文| 久久综合亚洲色一区二区三区| 一个人看的免费视频www在线高清动漫| xvideos亚洲永久网址| 精品国产_亚洲人成在线| 免费国产精品视频| 成人嫩草影院免费观看| 亚洲一级Av无码毛片久久精品| 九九九精品视频免费| 久久亚洲AV无码西西人体| 一区二区三区在线免费观看视频| 在线观看亚洲精品国产| 桃子视频在线观看高清免费视频| 亚洲精选在线观看| 成年人网站在线免费观看| 黑人粗长大战亚洲女2021国产精品成人免费视频 | 亚洲成a人片77777老司机| 五月亭亭免费高清在线| 亚洲最大的成人网站| 免费a级毛片在线观看| 两个人看的www高清免费观看| 亚洲欧洲第一a在线观看| 在线永久看片免费的视频| 亚洲乱色伦图片区小说| 亚洲综合色在线观看亚洲| 久久久久免费精品国产小说| 亚洲精品国产精品国自产网站| 免费一级毛片不卡在线播放| a级黄色毛片免费播放视频| 亚洲午夜在线播放| 亚洲免费日韩无码系列 | 国产男女爽爽爽免费视频| 久久丫精品国产亚洲av不卡| 在线成人a毛片免费播放 | 99免费视频观看| 亚洲国产区男人本色| 亚洲精品国产品国语在线| 成人片黄网站色大片免费| 国产在线观a免费观看| 亚洲中文无码亚洲人成影院|