<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

    主站蜘蛛池模板: 免费一级毛片在级播放| 人妻视频一区二区三区免费| 亚洲精品亚洲人成在线观看| 久久青草91免费观看| 久久精品国产亚洲av麻豆图片| 无码国产精品久久一区免费| 九九久久国产精品免费热6| 亚洲大尺度无码无码专区| 性xxxx视频播放免费| a在线观看免费网址大全| 波多野结衣亚洲一级| 久久久久亚洲AV无码专区桃色 | 久久精品国产精品亚洲人人| vvvv99日韩精品亚洲| 91手机看片国产永久免费| 一级A毛片免费观看久久精品| 亚洲日韩在线视频| 亚洲日韩精品一区二区三区无码| 午夜一区二区免费视频| 嫩草影院在线播放www免费观看| 日本免费一区二区久久人人澡| 99免费观看视频| 一道本在线免费视频| 久久九九久精品国产免费直播| 亚洲成av人片在线天堂无| 亚洲天堂男人天堂| 免费少妇a级毛片| 国产亚洲精品资在线| 亚洲国产精品久久| 91丁香亚洲综合社区| 国产99久久亚洲综合精品| 亚洲视频一区二区三区| 国产亚洲人成网站观看| 久久亚洲精品无码aⅴ大香| 一区二区亚洲精品精华液| 亚洲日韩中文字幕| 中文字幕在线日亚洲9| 亚洲国产成人久久77| 亚洲福利一区二区精品秒拍| 亚洲日本中文字幕| 一本色道久久88—综合亚洲精品|