当前位置: 首页 > news >正文

[Android 数据通信] android cmwap接入点

(1) 为什么会有两个接入点?

  在网上查阅大量资料后并经过反复的尝试与探索后,我大致对中国移动提供的这两种接入方式有了初步了解。
  在国际上,通常只有一种GPRS接入方式,为什么在中国会有CMWAP和CMNET两兄弟呢?(彩信之所以单独配置接入点是因为彩信服务需要连接专用的服务器,在这里不作探讨。)
  其实,CMWAP 和 CMNET 只是中国移动人为划分的两个GPRS接入方式。前者是为手机WAP上网而设立的,后者则主要是为PC、笔记本电脑、PDA等利用GPRS上网服务。它们在实现方式上并没有任何差别,但因为定位不同,所以和CMNET相比,CMWAP便有了部分限制,资费上也存在差别。

(2) 什么是WAP?

  WAP只是一种GPRS应用模式,它与GRPS的接入方式是无关的。WAP应用采用的实现方式是“终端+WAP网关+WAP服务器”的模式,不同于一般Internet的“终端+服务器”的工作模式。主要的目的是通过WAP网关完成WAP-WEB的协议转换以达到节省网络流量和兼容现有WEB应用的目的。
  WAP网关从技术的角度讲,只是一个提供代理服务的主机,它不一定由网络运营商提供。但据我所知,中国移动GPRS网络目前只有唯一的一个WAP网关:10.0.0.172,有中国移动提供,用于WAP浏览(HTTP)服务。有一点需要注意,WAP网关和一般意义上的局域网网关是有差别的,标准的WAP网关仅仅实现了HTTP代理的功能,并未完成路由、NAT等局域网网关的功能。这就决定了它在应用上所受到的限制。

(3) 中国移动对CMWAP的限制

  为了从应用中区别两者的定位,中国移动对CMWAP作了一定的限制,主要表现在CMWAP接入时只能访问GPRS网络内的IP(10.*.*.*),而无法通过路由访问Internet。(少数地区的移动网络可能不存在这一限制。)我们用CMWAP浏览Internet上的网页就是通过WAP网关协议或它提供的HTTP代理服务实现的。
  说到这里,就让我自然而然的联想到我们公司的网络,相信不少工作的朋友都有类似的体会。公司的网络在网关上不提供路由和NAT,仅仅提供一个可以访问外网的HTTP代理。这样,我们就无法直接使用QQ、MSN等非HTTP协议的应用软件了(好在它们还提供的有HTTP代理的连接方式)。CMWAP也正是

(4) 适用范围

  适用范围才是大家最关心的问题。CMNET拥有完全的Internet访问权,这里就不多说了,主要让我们来看看CMWAP。因为有了上面提到的限制,CMWAP的适用范围就要看WAP网关所提供的支持了。目前,中国移动的WAP网关对外只提供HTTP代理协议(80和8080端口)和WAP网关协议(9201端口)。(据有的网友提到1080端口也是开放的,但无法连接。这也许是移动内部使用的一个Socks后门吧^_^)。

  因此,只有满足以下两个条件的应用才能在中国移动的CMWAP接入方式下正常工作:
  1. 应用程序的网络请求基于HTTP协议。
  2. 应用程序支持HTTP代理协议或WAP网关协议。

如何辨别一个应用程序的网络请求是否基于HTTP协议?

  这个问题还真不好回答,要完全做到这一点需要通过拦截应用程序的通信数据包进行分析。这里提供几个简单的方法给广大菜鸟朋友:从表现上看,如果它的网络请求是网址(URL)的形式,那么通常是基于HTTP协议的,如Web浏览器;如果它连接的服务器端口是80,那么它可能是基于HTTP协议的。如果确实无法准确判断,那么请直接看下一个条件。(满足第二个条件的应用一定是基于HTTP协议的)

如何区别一个应用程序支持HTTP代理协议还是WAP网关协议呢?

  首先看它的设置中有没有代理服务器的选项(通常在S60上未特别说明的代理都是特指HTTP代理),如果有则表示它支持HTTP代理协议。如果没有,则需要按照以下步骤测试:
  在GPRS接入点设置的高级设置里去掉代理服务器的设置项:Server Address 和 Server Port(,如果应用程序可以正常工作,那么它是基于WAP网关协议,如Java程序、S60内置的浏览器。如果在此状态下不能正常工作,而恢复GPRS接入点高级设置中的代理服务器设置后能够正常工作,则应用程序支持HTTP代理协议(代理设置从系统中读取)。如果仍不能正常工作,那么这个应用程序一般来说是不支持HTTP代理协议或WAP网关协议的。

  这里需要特别说明的是JavaQQ,它有Socket和HTTP两种版本。现在网上流传的可用于CMWAP的JavaQQ就是基于HTTP协议的。就拿那个JavaQQ 2004来说,启动画面中就明确的写着“KJava QQ HTTP”。而SIS版的QQ和AgileMessenger(S60的MSN客户端)因为是采用的普通的Socket连接方式,因此无法用于CMWAP。

要连接的url假设为:www.baidu.com/test.htm
url改成10.0.0.172/test.htm
然后在请求的head中添加x-online-host:www.baidu.com


from:http://www.eoeandroid.com/forum-viewthread-tid-93645-highlight-cmwap.html

相关文章:

  • 转: 新浪微博布局学习——妙用TabHost
  • 系出名门Android(7) - 控件(View)之ZoomControls, Include, VideoView, WebView, RatingBar, Tab, Spinner, Chrono
  • android webview拦截超链接
  • android应用中插入flash
  • Android开发_WebView组件使用详解_LoadUrl直接显示网页内容
  • android开发我的新浪微博客户端-用户授权页面功能篇(3.2)
  • Android 调用平台功能 - 启动浏览器 支持file://
  • Android学习笔记之mainfest文件中android属性
  • android有效的内存使用
  • Android使用AsyncTask下载图片,最好使用WeakReference
  • Android笔记 SQLite总结 ,字带数据库,附记事本,字典小程序
  • android 自带的主题theme
  • android带输入框的Dialog
  • Android的Task和Activity相关
  • 开发者应深入学习的10个Android开源应用项目
  • [译] React v16.8: 含有Hooks的版本
  • 《微软的软件测试之道》成书始末、出版宣告、补充致谢名单及相关信息
  • 「面试题」如何实现一个圣杯布局?
  • Angular数据绑定机制
  • Dubbo 整合 Pinpoint 做分布式服务请求跟踪
  • emacs初体验
  • extjs4学习之配置
  • Git学习与使用心得(1)—— 初始化
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • JavaScript 奇技淫巧
  • nginx(二):进阶配置介绍--rewrite用法,压缩,https虚拟主机等
  • Python爬虫--- 1.3 BS4库的解析器
  • React系列之 Redux 架构模式
  • SpingCloudBus整合RabbitMQ
  • SQLServer之索引简介
  • 分享一份非常强势的Android面试题
  • 基于OpenResty的Lua Web框架lor0.0.2预览版发布
  • 跨域
  • 聊聊directory traversal attack
  • 数组大概知多少
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • 终端用户监控:真实用户监控还是模拟监控?
  • Android开发者必备:推荐一款助力开发的开源APP
  • 阿里云服务器购买完整流程
  • 扩展资源服务器解决oauth2 性能瓶颈
  • 支付宝花15年解决的这个问题,顶得上做出十个支付宝 ...
  • ​低代码平台的核心价值与优势
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • (04)odoo视图操作
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (搬运以学习)flask 上下文的实现
  • (二十三)Flask之高频面试点
  • (附源码)ssm基于jsp高校选课系统 毕业设计 291627
  • (附源码)ssm经济信息门户网站 毕业设计 141634
  • (全部习题答案)研究生英语读写教程基础级教师用书PDF|| 研究生英语读写教程提高级教师用书PDF
  • (生成器)yield与(迭代器)generator
  • (一)UDP基本编程步骤
  • (转载)虚函数剖析
  • .bat批处理(二):%0 %1——给批处理脚本传递参数