`
wayfarer
  • 浏览: 298335 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

cmnet和cmwap的访问

阅读更多

CMWAP(通过WAP网关代理,由WAP网关连接服务器,然后将服务器返回的结果转发给客户端)和CMNET(使用直接连接互联网的方式与服务器通信)是中国移动提供的两种网络接入方式,CMWAP实际上是一种客户端 <--> WAP网关 <--> 服务器的连接方式,而CMNET采用的是客户端 <--> 服务器直连方式。

 

public class ActionDispatcher extends MIDlet {
	private Display display = Display.getDisplay(this);
	private Form f;
	
	protected void startApp() throws MIDletStateChangeException {
		f = new Form("Network Test");
		f.append("正在连接网络, 情稍候;当出现cmwap和cmnet字样时,程序结束,可退出");
		display.setCurrent(f);
		try {
			cmwap(); // 电脑模拟器无法访问wap网络,除非电脑能够访问的中国移动的wap网关。这个要通过手机测试。
			cmnet();
		} catch (IOException e) {
			e.printStackTrace();
		}
		f.append("程序运行结束,可退出");
		display.setCurrent(f);
	}

	private void cmwap() throws IOException {
		HttpConnection conn = null;
		InputStream is = null;
		if (f.size() > 0) f.delete(0); // cmwap()是先执行的,后执行的cmnet()不必执行Form.delete()方法
		try {
			conn = (HttpConnection) Connector.open("http://10.0.0.172:80/", Connector.READ_WRITE, true);
			conn.setRequestProperty("X-Online-Host", "wap.sina.com");
//			conn.setRequestProperty("Accept", "*/*");
			is = conn.openInputStream();
			f.append("cmwap: no exception, test passed");
		} catch (Exception e) {
			f.append("cmwap failed: " + e.toString());
		} finally {
			if (is != null) {
				is.close();
				is = null;
			}
			if (conn != null) {
				conn.close();
				conn = null;
			}
			f.append("\n");
		}
	}
	private void cmnet() throws IOException {
		HttpConnection conn = null;
		InputStream is = null;
		try {
            conn = (HttpConnection) Connector.open("http://wap.sina.com/", Connector.READ_WRITE, true); // timeouts - A flag to indicate that the caller wants timeout exceptions
            is = conn.openInputStream();
            f.append("cmnet: no exception, test passed");
        } catch (Exception e) {
        	f.append("cmnet failed: " + e.toString());
        } finally {
			if (is != null) {
				is.close();
				is = null;
			}
			if (conn != null) {
				conn.close();
				conn = null;
			}
			f.append("\n");
		}
	}
	protected void pauseApp() {}
	protected void destroyApp(boolean arg0) throws MIDletStateChangeException {}
}

经由CMWAP方式接入时,MIDlet直接和WAP网关建立连接,地址是10.0.0.172。同时,MIDlet应该在Http头(Header)中添加下面的信息,X-Online-Host:联网服务器的域名和端口,这样WAP网关作为代理向服务器转发请求。同时可以在HTTP头中添加一些字段,例如User Agent等。

 

再发一个Demo

public HttpConnection openCMWAP(String url, String contentType) throws IOException {
	HttpConnection httpConn = null;
	for (int i = 0; i < 5; i++) { // 连接5次,如果5次都不成功,说明网络or服务器有问题
		if (httpConn != null) httpConn.close();
		httpConn = (HttpConnection) Connector.open(url, Connector.READ);
		httpConn.setRequestMethod(HttpConnection.GET);
		if (httpConn.getHeaderField("Content-Type").indexOf(contentType) > -1) {
			if (httpConn.getResponseCode() == HttpConnection.HTTP_OK) {
				return httpConn;
			}
			break;
		}
	}
	throw new IOException("Max Connector open count.");
}
public HttpConnection openCMNET(String url, String contentType) throws IOException {
	String proxy = "http://10.0.0.172";
	String serverName = null;
	boolean needProxy = false;
	if (proxy != null && proxy.length() > 0) {
		needProxy = true;
		// http://servername/filename
		serverName = url.substring(0, (url.indexOf("/", 7) + 1));
		url = proxy + "/" + url.substring(url.indexOf("/", 7) + 1, url.length());
	}
	HttpConnection httpConn = null;
	for (int i = 0; i < 5; i++) {
		if (httpConn != null) httpConn.close();
		httpConn = (HttpConnection) Connector.open(url, Connector.READ, true);
		if (needProxy) {
			httpConn.setRequestProperty("X-Online-Host", serverName);
			httpConn.setRequestProperty("Accept", "*/*");
		}
		httpConn.setRequestMethod(HttpConnection.GET);
		if (httpConn.getHeaderField("Content-Type").indexOf(contentType) > -1) {
			if (httpConn.getResponseCode() == HttpConnection.HTTP_OK) {
				return httpConn;
			}
			break;
		}
	}
	throw new IOException("Max Connector open count.");
}
分享到:
评论
1 楼 wayfarer 2009-07-30  
如果网络走的是cmwap,有的地方的中国移动交换机会把你的http里数据包的包头里的一些数据给过滤掉,就无法将数据传回手机了。所以上下行的数据最好不要写到http包头里,要不会接受或上行不到的。有些手机上行http数据好像也会过滤一些数据包的包头数据。

所以联网尽量使用cmnet。

相关推荐

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

    CMWAP 和 CMNET 的主要区别与适用范围 作为中国特色的手机上网两种方式,CMWAP 和 CMNET 是中国移动人为划分的两个 GPRS 接入方式。CMWAP 是为手机 WAP 上网而设立的,主要是为了手机用户上网,而 CMNET 则主要是为...

    剖析cmwap和cmnet接入点区别和应用

    cmwap和cmnet的主要区别在于它们的地址类型和访问权限。cmwap使用A类地址,限制了其访问范围,仅能访问中国移动的WAP网络,而cmnet使用C类地址,拥有更高的访问权限,可以访问整个互联网。此外,cmwap的资费也相对较...

    j2me常见问题(push,cmnet,cmwap,rms,字符转码...)

    接着,我们来了解CMNET和CMWAP,这两个术语是与中国移动网络相关的。CMNET代表China Mobile Network,是一种无限制的互联网接入方式,速度较快,可以访问所有互联网资源。而CMWAP是China Mobile WAP Gateway的缩写,...

    Android_WIFI,CMWAP,CMNET的自动判断访问

    Android_WIFI,CMWAP,CMNET的自动判断访问 Android_WIFI,CMWAP,CMNET的自动判断访问 Android_WIFI,CMWAP,CMNET的自动判断访问 Android_WIFI,CMWAP,CMNET的自动判断访问

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

    综上所述,这个压缩包提供了一套完整的中国移动G3客户端软件,包括安装、卸载程序、帮助文档以及必要的库文件,使得用户可以在中兴和华为的手机上方便地通过3G网络(CMNET或CMWAP)访问互联网。安装这个客户端后,...

    GPRS数据传输的控制(CMWAP和CMNET)[参考].pdf

    总结来说,GPRS数据传输的控制涉及到多个AT命令和网络配置,其中CMNET和CMWAP的使用差异主要在于是否需要通过网关访问互联网。理解并掌握这两种接入点的区别和使用方法,对于开发适应各种网络环境的移动应用程序具有...

    AndroidWIFI,CMWAP,CMNET的自动判断访问.pdf

    标题提到的"AndroidWIFI,CMWAP,CMNET的自动判断访问"是指在Android设备上如何根据不同的网络连接方式(如Wi-Fi、CMWAP和CMNET)来适配网络请求。在描述中提到了在开发过程中遇到的问题,即HTTP服务在某些网络环境下...

    WAP、WIFI、CMWAP、CMNET上网方式的区别与联系.docx

    虽然移动对此进行了某种程度的封锁,但通过修改浏览器标识或者使用特殊补丁,用户仍可以绕过封锁,通过CMWAP访问非WAP网站。然而,这种方式可能导致连接不稳定,且可能违反移动的使用政策。 总的来说,WAP、WIFI、...

    j2me自动连接网络,可以是cmwap或者cmnet

    CMWAP主要面向手机网页浏览,通常限制了访问范围,而CMNET则提供更全面的互联网访问权限,包括邮件、FTP等服务。在J2ME应用中,根据用户环境和需求选择合适的接入点是至关重要的。 首先,我们需要了解J2ME中的PDP...

    WAP、WIFI、CMWAP、CMNET上网方式的区别与联系.pdf

    - CMWAP和CMNET都是中国移动提供的GPRS接入方式,CMWAP主要用于手机WAP上网,而CMNET则为PC、笔记本电脑等提供全互联网访问服务。 - CMWAP在功能上有所限制,比如速度较慢,且可能需要通过移动的网关进行HTTP代理...

    设置windowsPPC上网归类.pdf

    Windows PPC(Pocket PC)设备的网络设置主要涉及到GPRS、CMNET和CMWAP的区别与配置。GPRS(General Packet Radio Service)是一种2.5G网络技术,提供无线数据服务,理论最高速度可达115Kbps。中国移动将GPRS服务...

    CMWAP配置描述文件

    4. **网络规则**:可能包括哪些域名或URL可以通过CMWAP访问,以及特定的路由规则。 在导入`.mobileconfig`文件时,用户需要注意以下几点: - 确保来源可信:因为配置文件涉及到网络连接和可能的敏感信息,用户应仅...

    GPRS拨号访问网络

    在本文中,我们将深入探讨如何利用SIM300模块通过GPRS拨号来实现计算机访问IP服务器,并讨论CMNET和CMWAP这两种常见的GPRS接入方式。 SIM300模块是一款小巧、经济且功能强大的GSM/GPRS模块,广泛应用于物联网和移动...

    关于cmwap网络切换

    相比于CMNET,CMWAP通常用于浏览网页、收发邮件等轻量级应用,因为它的数据流量费用较低。 二、Android系统中的APN设置 在Android设备上,APN设置用于管理数据连接,包括网络类型、用户名、密码、服务器地址等信息...

    IPHONE3 解决CMWAP上网方法

    CMWAP,全称China Mobile WAP,是中国移动提供的一个专用于访问WAP网站和服务的数据接入点,通常用于非智能手机或早期智能手机上。由于iPhone的特性,它并不直接支持CMWAP接入,但通过特定设置和技巧,我们仍可以使...

    手机CMCC设置借鉴.pdf

    《手机CMCC设置借鉴》这份文档主要探讨了中国移动提供的两种GPRS接入方式——CMWAP和CMNET的区别、原理以及应用场景。以下是对这两个接入点的详细解析: 1. CMWAP与CMNET的区别: CMWAP是针对手机WAP上网设计的接...

    cmwap接入点设置

    CMWAP和CMNET是两个不同的接入点名称(APN),它们都属于中国移动提供的数据网络服务,但有着不同的使用场景和限制。 1. CMNET的设置: CMNET是一种无限制的接入点,允许用户完全接入互联网,不受特定限制。在...

    cmwap无限量卡3G上网

    它不同于 CMNET 接入点,CMNET 提供的是完全的互联网访问,而 CMWAP 可能存在一些限制,例如速度较慢或不能直接访问某些非 WAP 网站。 2. 无限量包月卡: 文中提到的 CMWAP 无限量卡,指的是用户可以以一定的月费...

    手机连接电脑上网详解.doc

    手机连接电脑上网的方式主要有两种:CMWAP 和 CMNET。 1. **CMWAP 无线上网** - CMWAP 是中国移动为手机 WAP 上网设计的一种接入方式,它限定了只能访问 GPRS 网络内的 IP 地址(10.*.*.*)。这意味着通过 CMWAP ...

Global site tag (gtag.js) - Google Analytics