1。CNNET,这个就不用怎么样介绍了,跟电脑上Internet没什么区别。
直接用这个这样的代码就Ok了

java 代码

try {
http = (HttpConnection) Connector.open(url);
} catch (IOException e) {

e.printStackTrace();
}

2。CNWAP,这个我的实践结果根网上的很多介绍不同。看下面这段文字。下面摘自。在J2ME中使用CNWAP接入点联网

都是中国移动搞出来的事情。

所以对于特定的一些机型,普通的直接联网方式会出现连不上网络,这是因为你的手机设备不支持CNNET的联网方式。也许你会发现不经过修改,直接连接的方式也可以在一些cnwap的设备上(只支持cnwap的多为低端机)运行,这个是因为设备上应中国一定的要求,在系统底层进行了转换,如果没有转换的话,就必须你自己手动在代码里面显式的来转换了。

这里我只打算给出一些示意代码,用来辅助说明解决问题的方法

假设你原来要请求的页面是:htpp://www.testwap.com/test/try.jsp

那么你会用这句话连接

HttpConnection httpConnection = (HttpConnection)Connector.open(“http://www.testwap.com/test/try.jsp”);

但是为了转成CNWAP的联网形式 你必须这么写

HttpConnection httpConnection = (HttpConnection)Connector.open(“http://10.0.0.172:80/test/try.jsp”);

接着再写

httpConnection.setRequestProperty("X-Online-Hostwww.testwap.com");
httpConnection.setRequestProperty("Accept","*/*");

这样就ok了

不过这个方法在模拟器上没办法测试,因为模拟器移动网关不让你进啊,所以写代码的时候用cnnet的正式发布的时候改成cnwap的。很麻烦
代码是
http =(HttpConnection)Connector.open("http://10.0.0.172:80/"+url,Connector.READ,true);
c.setRequestProperty("X-Online-Host",ServerName);
c.setRequestProperty("Accept", "*/*");

上面的代码CNNET我试过,因为我那个足球项目需要采用Scoket,确实是只有CNNet能打开Socket。
第二种,我却意外发现,我开发WapExporer进行测试的时候,我没有采用代理,也可以获取连接。
分析有以下几种可能。
1.移动那边可能对于CNNET来说,几乎是对所有的协议进行开放。比如(Socket,Http)跟所有端口。
2.对于CNWAP,我估计只开放http协议以及80端口,其他的都封闭,也就是CNWAP只能访问http协议。
由于我测试的IP地址进行测试,所以它可以直接找到。对于非IP地址我没测试果。也许CNWAP不能解释域名也说不定,这点我就不清楚了。
例子:

import java.io.IOException;

import java.io.InputStream;

import javax.microedition.io.Connector;

import javax.microedition.io.HttpConnection;

import javax.microedition.lcdui.Command;

import javax.microedition.lcdui.CommandListener;

import javax.microedition.lcdui.Display;

import javax.microedition.lcdui.Displayable;

import javax.microedition.lcdui.Form;

import javax.microedition.lcdui.Image;

import javax.microedition.lcdui.StringItem;

import javax.microedition.midlet.MIDlet;

/**

* HttpDemo

*
* @author kf156(亚日)

*
*/

public class HttpTest extends MIDlet implements CommandListener, Runnable {

public static final byte WAIT = 0;// 等待

public static final byte CONNECT = 1;// 连接中

public static final byte SUCCESS = 2;// 成功

public static final byte FAIL = 3;// 失败

int state;// 当前状态

Display display = Display.getDisplay(this);

Form form = new Form("HttpTest");

boolean cmnet = true;// 接入点为cmnet还是cmwap

StringBuffer sb = new StringBuffer("当前接入方式为:CMNET\n");

StringItem si = new StringItem(null, sb.toString());

Command connect = new Command("联网", Command.OK, 1);

Command change = new Command("改变接入点方式", Command.OK, 2);

Command exit = new Command("退出", Command.EXIT, 1);

HttpConnection http;

String host = "wiki.huihoo.com";

String path = "/images/9/9c/Java.gif";

public HttpTest() {

state = WAIT;// 等待状态

form.append(si);

form.addCommand(connect);

form.addCommand(change);

form.addCommand(exit);

form.setCommandListener(this);

}

protected void destroyApp(boolean b) {

}

protected void pauseApp() {

}

protected void startApp() {

display.setCurrent(form);

}

public void commandAction(Command c, Displayable d) {

if (c == change) {// 改变接入点

if (isConnect())

return;

cmnet = !cmnet;

form.deleteAll();

sb.delete(0, sb.length());

addStr("当前接入方式为:" + (cmnet ? "CMNET" : "CMWAP"));

form.append(si);

} else if (c == connect) {// 联网

if (isConnect())

return;

new Thread(this).start();

} else if (c == exit) {// 退出

destroyApp(true);

notifyDestroyed();

}

}

public void run() {

form.deleteAll();

sb.delete(0, sb.length());

addStr("当前接入方式为:" + (cmnet ? "CMNET" : "CMWAP"));

form.append(si);

state = CONNECT;

addStr("网络连接中...");

InputStream is = null;

try {

String url = null;

url = cmnet ? ("http://" + host + path)

: ("http://10.0.0.172:80" + path);

http = (HttpConnection) Connector.open(url, Connector.READ_WRITE,

true);

if (!cmnet)

http.setRequestProperty("X-Online-Host", host);

http.setRequestMethod(HttpConnection.GET);

String contentType = http.getHeaderField("Content-Type");

System.out.println(contentType);

addStr(contentType);

if (contentType != null

&& contentType.indexOf("text/vnd.wap.wml") != -1) {// 过滤移动资费页面

addStr("移动资费页面,过滤!");

http.close();

http = null;

http = (HttpConnection) Connector.open(url,

Connector.READ_WRITE, true);

if (!cmnet)

http.setRequestProperty("X-Online-Host", host);

http.setRequestMethod(HttpConnection.GET);

contentType = http.getHeaderField("Content-Type");

}

addStr("Content-Type=" + contentType);

int code = http.getResponseCode();

addStr("HTTP Code :" + code);

if (code == 200) {

addStr("网络联网成功,接收数据...");

is = http.openInputStream();

Image image = Image.createImage(is);

addStr("数据接收完毕,显示图片");

form.append(image);

// 普通字节数据接收

// byte[] b = new byte[1024];

// int len = 0;

// ByteArrayOutputStream baos = new ByteArrayOutputStream();

// DataOutputStream dos = new DataOutputStream(baos);

// while ((len = is.read(b)) != -1) {

// dos.write(b, 0, len);

// }

// dos.close();

// dos = null;

// is.close();

// is = null;

state = SUCCESS;

return;

} else {

addStr("访问页面失败");

}

} catch (IOException e) {

addStr("联网发生异常:" + e.toString());

e.printStackTrace();

} catch (Exception e) {

addStr("发生异常:" + e.toString());

e.printStackTrace();

} finally {

if (is != null) {

try {

is.close();

} catch (IOException e) {

e.printStackTrace();

}

is = null;

}

if (http != null)

try {

http.close();

} catch (IOException e) {

e.printStackTrace();

}

http = null;

}

state = FAIL;

}

/**

* 判断是否正在连接

*
* @return

*/

private boolean isConnect() {

if (state == CONNECT) {

addStr("网络连接中,请稍候...");

return true;

}

return false;

}

/**

* 添加文字

*
* @param str

* 要添加的文字

*/

private void addStr(String str) {

sb.append(str + "\n");

si.setText(sb.toString());

}

}

CMNET和CMWAP GPRS 连接相关推荐

  1. CMNET和CMWAP网络连接

    J2me上的GPRS网络接入点有两个,一个就是CMNET,一个就是CMWAP.一般移动梦网,百宝箱就是挂在CMWAP上的. CMNET CMNET就是一般的互联网的网络接入点.我们一般在SUN那里看到 ...

  2. 关于CMNET和CMWAP联网实践

    在j2medev上见到一篇关于CMNET和CMWAP网络连接.   现在我根据我的实际经验总结下它们. 1.CNNET,这个就不用怎么样介绍了,跟电脑上Internet没什么区别. 直接用这个这样的代 ...

  3. 关于GPRS(cmnet、cmwap)和CDMA 1X的比较及最优方案

    关于GPRS(cmnet.cmwap)和CDMA 1X的比较及最优方案 目前中国移动GPRS接入点有cmnet和cmwap,这两种方式在本质上都是GPRS无线公网,只是提供的服务不同.关于cmnet和 ...

  4. CMNET和CMWAP简单区别

    1) GRPS接入方式: CMNET和CMWAP是中国移动GPRS网络的两个不同APN(Access Point Name接入点名称).CMNET提供了NAT服务,使 用该服务的手机可以直接访问int ...

  5. CMNET和CMWAP的区别和适用范围

    在论坛上泡了一段时间,发现很多朋友对CMWAP和CMNET的区别还是不甚了解.对于一些新软件,经常有人会问"CMWAP可以用吗?",希望本文来能为大家解开这个疑惑. 如果你是一个菜 ...

  6. cmnet 和 cmwap 收费等区别

    要了解资费的区别,首先要了解这两种方式的不同: 1,区别 CMNET和CMWAP是中国移动GPRS网络的两个不同APN(接入点名称),之所以这样分类是以控制为目的.CMNET提供了NAT服务,使用该服 ...

  7. CMNET和CMWAP区别

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

  8. 中国移动CMnet和CMwap两种网络的区别?

    中国移动CMnet和CMwap两种网络的区别? 一.目的不同 CMwap是为手机wap上网设立的; cmnet是为手体电脑,掌上电脑等移动设备上互联网设立的; 二.实现方式不同 WAP应用采用的实现方 ...

  9. cmnet与cmwap区别

    1,区别 CMNET和CMWAP是中国移动GPRS网络的两个不同APN(接入点名称),之所以这样分类是以控制为目的.CMNET提供了NAT服务,使用该服务的手机可以直接访问internet.CMWAP ...

最新文章

  1. MySQL导入csv文件内容到Table及数据库的自增主键设置
  2. jQuery源码解析之offset()
  3. php+system+info_systeminfo命令详解
  4. android软件游戏显示fps测试工具,fpsviewer—实时显示fps,监控Android卡顿的可视化工具...
  5. Android 11 存储权限适配指南
  6. 《左耳听风》-ARTS-打卡记录-第十一周
  7. PDF怎么转换成Word?教你两种简单有效的方法
  8. 调用百度API(七)——获取百度API token 通用代码
  9. 【蓝桥杯单片机】共阳数码管
  10. 基于阿里云ECS,Ubuntu系统搭建离线下载服务器
  11. 【计算机视觉】光照及阴影(持续更新中)
  12. 基于proteus的功率_学习电路仿真:基于proteus电路仿真软件的步进电机仿真
  13. 2021爱智先行者—红外学习模块(空调遥控器)
  14. 去黑头最正确的做法,肯定有效的哦
  15. 树莓派对继电器的实验及其编译
  16. DSP学习一:ADAU1452与Sigma Studio
  17. 英频杰Indy固件手册中文版(二)
  18. 高频linux命令指南
  19. 如何避免危险的免费wifi?
  20. matlab的spwm控制系统仿真,基于MATLAB的SPWM控制系统仿真

热门文章

  1. 时间序列模型 (二):移动平均法
  2. Blazor Web Assembly (WASM) 主题切换
  3. 2t3ik与ddgs挖矿病毒处理
  4. 你真的了解ELT和ETL吗?
  5. supervisor的使用教程
  6. matlab中zeros()函数
  7. 中国人工智能大赛个人赛正式收官,优质企业、专业参赛团队继续“接棒”
  8. Project Euler:Problem 53 Combinatoric selections
  9. springboot——项目install报错
  10. ZoteroCNKI抓取不到学位论文的解决办法