- 浏览: 298348 次
- 性别:
- 来自: 上海
最新评论
-
再_见孙悟空:
写的不错
Dialog -
a549262189:
支持下,正好在学习这块的内容!
Android Gesture Detector -
dcsff:
受教了
LayoutInflater -
庆_啊:
真厉害。
LayoutInflater -
ghj234:
学习了,哈哈
LayoutInflater
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。
所以联网尽量使用cmnet。
发表评论
-
线程过多and高效MIDP编程
2010-05-03 17:42 0见附件 -
XML解析
2010-02-02 23:25 1275下面代码用到了jdom和dom4j两个包 public cl ... -
解压缩
2010-02-02 23:25 1153/* * 非面向对象语言要实现保存工作数据(如一个绘图程序 ... -
回车换行符
2010-01-21 13:52 135811 换行符:另起一行,'\n'10,仅仅把一个长行截断成两 ... -
Thread Pool
2010-01-14 15:27 975public class WorkQueue { p ... -
FileConnection
2010-01-12 15:39 15331. 引言 FileConnection API 是一 ... -
Customized Menu for JavaME
2009-10-10 11:36 1095参考文档: http://www.iteye.com/top ... -
自定义repeat()方法
2009-09-23 17:42 1355j2me的Canvas中有一个repeat()回调方法。大部分 ... -
J2ME移植-键值
2009-09-23 15:07 16511. J2ME标准api中Canvas中定义的键值有17(方向 ... -
kxml doc
2009-09-22 14:55 18921. KXmlParser java.lang.Ob ... -
Http线程阻塞分析
2009-08-23 16:48 4372先做一个总结:Http连接线程发生阻塞,会影响其他线程也出现阻 ... -
jar和jad解释
2009-08-20 23:22 1252整理电脑,从F盘挖坟挖出的股东,也贴出来吧 如果是K- ... -
图片在程序内存中的占有量
2009-08-20 17:58 27171. 图片占内存容量计算公式为: 图片所占内存大小 ... -
如何从网络中获取png图片
2009-08-03 19:54 20421. J2ME // 方法1 Connector conn ... -
JSR75 FileConnection Optional Package 使用方法
2009-07-29 17:09 1637package forrest.fcop; imp ... -
mobile日志
2009-07-29 16:05 9851.项目中的实际应用 这个demo用到了JSR75 - ... -
DoubleBuffer 实现
2009-07-29 10:22 1290绘制地图的时候会出现图片断裂,屏幕闪烁等绘图效率问题 ... -
System.getProperty(String key)和MIDlet.getAppProperty(String key)
2009-07-13 17:53 20011. System.getProperty(String ... -
WTK的安全特性
2009-07-01 17:28 10851. MIDlet套件签名的背景 ... -
纳米星开发遇到的一些bug
2009-06-30 17:01 10561.Stream和Connection使用后要关闭 ...
相关推荐
CMWAP 和 CMNET 的主要区别与适用范围 作为中国特色的手机上网两种方式,CMWAP 和 CMNET 是中国移动人为划分的两个 GPRS 接入方式。CMWAP 是为手机 WAP 上网而设立的,主要是为了手机用户上网,而 CMNET 则主要是为...
cmwap和cmnet的主要区别在于它们的地址类型和访问权限。cmwap使用A类地址,限制了其访问范围,仅能访问中国移动的WAP网络,而cmnet使用C类地址,拥有更高的访问权限,可以访问整个互联网。此外,cmwap的资费也相对较...
接着,我们来了解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的自动判断访问
综上所述,这个压缩包提供了一套完整的中国移动G3客户端软件,包括安装、卸载程序、帮助文档以及必要的库文件,使得用户可以在中兴和华为的手机上方便地通过3G网络(CMNET或CMWAP)访问互联网。安装这个客户端后,...
总结来说,GPRS数据传输的控制涉及到多个AT命令和网络配置,其中CMNET和CMWAP的使用差异主要在于是否需要通过网关访问互联网。理解并掌握这两种接入点的区别和使用方法,对于开发适应各种网络环境的移动应用程序具有...
标题提到的"AndroidWIFI,CMWAP,CMNET的自动判断访问"是指在Android设备上如何根据不同的网络连接方式(如Wi-Fi、CMWAP和CMNET)来适配网络请求。在描述中提到了在开发过程中遇到的问题,即HTTP服务在某些网络环境下...
虽然移动对此进行了某种程度的封锁,但通过修改浏览器标识或者使用特殊补丁,用户仍可以绕过封锁,通过CMWAP访问非WAP网站。然而,这种方式可能导致连接不稳定,且可能违反移动的使用政策。 总的来说,WAP、WIFI、...
CMWAP主要面向手机网页浏览,通常限制了访问范围,而CMNET则提供更全面的互联网访问权限,包括邮件、FTP等服务。在J2ME应用中,根据用户环境和需求选择合适的接入点是至关重要的。 首先,我们需要了解J2ME中的PDP...
- CMWAP和CMNET都是中国移动提供的GPRS接入方式,CMWAP主要用于手机WAP上网,而CMNET则为PC、笔记本电脑等提供全互联网访问服务。 - CMWAP在功能上有所限制,比如速度较慢,且可能需要通过移动的网关进行HTTP代理...
Windows PPC(Pocket PC)设备的网络设置主要涉及到GPRS、CMNET和CMWAP的区别与配置。GPRS(General Packet Radio Service)是一种2.5G网络技术,提供无线数据服务,理论最高速度可达115Kbps。中国移动将GPRS服务...
4. **网络规则**:可能包括哪些域名或URL可以通过CMWAP访问,以及特定的路由规则。 在导入`.mobileconfig`文件时,用户需要注意以下几点: - 确保来源可信:因为配置文件涉及到网络连接和可能的敏感信息,用户应仅...
在本文中,我们将深入探讨如何利用SIM300模块通过GPRS拨号来实现计算机访问IP服务器,并讨论CMNET和CMWAP这两种常见的GPRS接入方式。 SIM300模块是一款小巧、经济且功能强大的GSM/GPRS模块,广泛应用于物联网和移动...
相比于CMNET,CMWAP通常用于浏览网页、收发邮件等轻量级应用,因为它的数据流量费用较低。 二、Android系统中的APN设置 在Android设备上,APN设置用于管理数据连接,包括网络类型、用户名、密码、服务器地址等信息...
CMWAP,全称China Mobile WAP,是中国移动提供的一个专用于访问WAP网站和服务的数据接入点,通常用于非智能手机或早期智能手机上。由于iPhone的特性,它并不直接支持CMWAP接入,但通过特定设置和技巧,我们仍可以使...
《手机CMCC设置借鉴》这份文档主要探讨了中国移动提供的两种GPRS接入方式——CMWAP和CMNET的区别、原理以及应用场景。以下是对这两个接入点的详细解析: 1. CMWAP与CMNET的区别: CMWAP是针对手机WAP上网设计的接...
CMWAP和CMNET是两个不同的接入点名称(APN),它们都属于中国移动提供的数据网络服务,但有着不同的使用场景和限制。 1. CMNET的设置: CMNET是一种无限制的接入点,允许用户完全接入互联网,不受特定限制。在...
它不同于 CMNET 接入点,CMNET 提供的是完全的互联网访问,而 CMWAP 可能存在一些限制,例如速度较慢或不能直接访问某些非 WAP 网站。 2. 无限量包月卡: 文中提到的 CMWAP 无限量卡,指的是用户可以以一定的月费...
手机连接电脑上网的方式主要有两种:CMWAP 和 CMNET。 1. **CMWAP 无线上网** - CMWAP 是中国移动为手机 WAP 上网设计的一种接入方式,它限定了只能访问 GPRS 网络内的 IP 地址(10.*.*.*)。这意味着通过 CMWAP ...