CMNET和CMWAP网络连接

转载 2005年03月03日 01:34:00
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/

相关文章推荐

Android开发:休眠唤醒或开机后cmwap/cmnet网络不能连接的解决办法

Android手机(移动GSM)在休眠或开机后不能成功启用网络链接(设置都正常),有时候甚至状态栏图标是连接的,但网络依旧不可用。 如下解决方法,不知可通用,但测试HTC野火手机移动版可使用: ...

移动G3客户端(CMNET CMWAP皆可)

  • 2013年03月12日 01:57
  • 5.31MB
  • 下载

cmnet和cmwap的区别

出处不详 先说说cmwap和cmnet的区别,很多人都知道这是移动提供的两个不同的接入点,但是说到区别,恐怕很多玩家都不是十分清楚。其实,cmwap和cmnet只是移动人为划分的两个...

cmwap转cmnet

  • 2007年06月06日 12:33
  • 473KB
  • 下载

cmwap与cmnet的区别

1.    为什么会有两个接入点?  在国际上,通常只有一种GPRS接入方式,为什么在中国会有CMWAP和CMNET两兄弟呢?(彩信之所以单独配置接入点是因为彩信服务需要连接专用的服务器,在这里不作探...

CMWAP 和 CMNET

CMWAP 和 CMNET 只是中国移动人为划分的两个GPRS接入方式。前者是为手机WAP上网而设立的,后者则主要是为PC、笔记本电脑、PDA等利用GPRS上网服务。它们在实现方式上并没有任何差别,但...

CMWAP和CMNET 的主要区别与适用范围

随着移动优惠促销活动的开展,很多网友都对20元包月的CMWAP无线上网产生了很大的兴趣,但是一些朋友在对CMWAP和CMNET的区别还是不甚了解,导致了很多朋友在毫无知觉的情况下被扣了一大笔流量费,可...

android的日积月累-进行WIFI,CMWAP和CMNET的自动判断访问

智能进行WIFI,CMWAP和CMNET的自动判断访问 引用文件: import android.app.AlertDialog; import android.content.Broadc...

什么是cmnet和cmwap

用手机上网已经有好长一段时间了,每次在和朋友交流经验时,总会发现很多朋友对 CMWAP 和 CMNET 的区别还是不甚了解。对于一些新软件,经常有人会问 “CMWAP 可以用吗? ” ,所以笔者撰写了...
  • salahg
  • salahg
  • 2013年01月30日 11:16
  • 575
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章: CMNET和CMWAP网络连接
举报原因:
原因补充:

(最多只允许输入30个字)