Symbian http 连接与代理

本文介绍了Symbian平台上进行HTTP上传下载项目的实践经验,包括GPRS接入方式CMNET与CMWAP的区别、WAP协议简介及开发过程中遇到的具体问题与解决方案。

最近一直做symbian http上传下载项目,在几个问题上面绕了个大弯,耽误了好长时间,现总结一下遇到的问题以及解决方法,为己为人.简单介绍一下基础知识.
1) GRPS接入方式:
CMNET和CMWAP是中国移动GPRS网络的两个不同APN(Access Point Name接入点名称)。CMNET提供了NAT服务,使用该服务的手机可以直接访问internet。CMWAP只提供了WAP代理和HTTP代理,手机 上网能访问的范围有限,接入时只能访问GPRS网络内的IP(10,*,*,*)。因此CMWAP主要用于手机WAP上网,CMNET则是用于PC,笔记 本电脑,PDA等设备实现GPRS上网。两者手机上网的方式没有差别,如此划分是中国移动对手机上网服务对象的定位不同,所以他们的应用范围和资费标准不 同。
2) CMNET和CMWAP区别:
A:CMWAP只开放80,8080,9201端口,适合http,wap访问(10.0.0.172起初是做为CSD方式的无线接入的网关,那时使用的 是9201端口,运行的是WAP(Wireless Access Protocal)一种专门的无线终端访问数据网络的衉议。它的作用其实更多的是作为Mobile Network和Internet之间的网关,将无线终端的WAP address请求递交给DNS解析,然后重定向至WAP站点。
进入GPRS时代后10.0.0.172开始作为proxy使用开放了80端口,仍然承载WAP并开始提供更多的服务,例如:MMS和HTTP。手机这时其实更象是局域网中使用proxy的Internet address上网的设备)
CMNET适合象socket等非http请求访问.
B: CMNET可以把他想象成PC上的直接连接INTERNET。如果用CMNET接入点,可以直接上INTERNET
CMWAP就相当于PC上的局域网。中国电信只针对CMWAP开放2个端口,就是80和9201,如果CMWAP接入,要连接INTERNET,需要才用HTTP代理协议.
C:费用比较
CMWAP所需要的都是移动网络内部的流量,成本可以忽略不计算.
CMNET则需要中国移动为此而支付网间结算费用
D: 访问内容
用CMWAP只能访问服务器位于wap网内的网站或者使用提供服务的网站位于wap网内的软件。例如掌迅通,10game之类。
用CMNET,任何服务,网络,软件,都可以自由使用
3) WAP简介
WAP(Wireless Application Protocol)无线应用协议是一个开放式标准协议,它使用一种类似于HTML的标记式语言WML,相当于国际互联网上的HTML(超文件标记语言)并可通过WAP Gateway直接访问特定的网页。
WAP能够运行于各种无线网络之上,如GSM、GPRS、CDMA1X等,即将开通的3G移动通信网络同样也支持WAP。打个比喻,GPRS和GSM都是马路,而WAP是在马路上的汽车,汽车上运输的货物,就是WAP上的网站内容了。
WAP只是一种GPRS应用模式,它与GRPS的接入方式是无关的。WAP应用采用的实现方式是“终端+WAP网关+WAP服务器”的模式
4) symbian开发中遇到的问题:
首先是symbian的字符串问题:
HBufC8* heapBuf = HBufC8::NewLC(fileLength);
TPtr8 postData8 = heapBuf->Des();
file.Read(postData8);
注意: 此处是关键,费了一个礼拜,不能把文件直接生成入HBufC8,如HBufC8::NewLC(fileStream, fileLength)也没法得到,因为HBufC是不可以修改的, 用 Des() 返回一个可修改的指针TPtr8,然后读入文件file.Read(TPtr8),symbian没有提供可供修改的堆描述符HBuf.
其次是代理设置问题.
http在symbian真机上走的是CMWAP,需要设置http代理,代理IP地址是:10.0.0.172,端口是:80
在设置好代理后,发送URL连接,下面是get请求的程序代码:

TUriParser8 uri;
uri.Parse(aUri);

TBuf8<20> aProxy8(_L8("10.0.0.172:80"));
RStringF iPrxAddr = iSession.StringPool().OpenFStringL(aProxy8);
CleanupClosePushL(iPrxAddr);

THTTPHdrVal iPrxUsage(iSession.StringPool().StringF(HTTP::EUseProxy,RHTTPSession::GetTable()));
iSession.ConnectionInfo().SetPropertyL(iSession.StringPool().StringF(HTTP::EProxyUsage,RHTTPSession::GetTable()), iPrxUsage);
iSession.ConnectionInfo().SetPropertyL(iSession.StringPool().StringF(HTTP::EProxyAddress,RHTTPSession::GetTable()), iPrxAddr);
CleanupStack:: PopAndDestroy();

RStringF method = iSession.StringPool().StringF(HTTP::EGET,
RHTTPSession::GetTable());

iTransaction = iSession.OpenTransactionL(uri, *this, method);

RHTTPHeaders hdr = iTransaction.Request().GetHeaderCollection();
//原来的错误做法
// _LIT8(KHost, "10.0.0.172:80");
// SetHeaderL(hdr, HTTP::EHost, KHost);
// SetOnLineHostHeader(iPrxAddr); //添加 "X_OnLine_Host"

SetHeaderL(hdr, HTTP::EUserAgent, KUserAgent);
SetHeaderL(hdr, HTTP::EAccept, KAccept);

iTransaction.SubmitL();

转自:http://hi.baidu.com/gensoft/blog/item/21617932728ae64aad4b5f94.html

潮汐研究作为海洋科学的关键分支,融合了物理海洋学、地理信息系统及水利工程等多领域知识。TMD2.05.zip是一套基于MATLAB环境开发的潮汐专用分析工具集,为科研人员工程实践者提供系统化的潮汐建模计算支持。该工具箱通过模块化设计实现了两大核心功能: 在交互界面设计方面,工具箱构建了图形化操作环境,有效降低了非专业用户的操作门槛。通过预设参数输入模块(涵盖地理坐标、时间序列、测站数据等),用户可自主配置模型运行条件。界面集成数据加载、参数调整、可视化呈现及流程控制等标准化组件,将复杂的数值运算过程转化为可交互的操作流程。 在潮汐预测模块中,工具箱整合了谐波分解法潮流要素解析法等数学模型。这些算法能够解构潮汐观测数据,识别关键影响要素(包括K1、O1、M2等核心分潮),并生成不同时间尺度的潮汐预报。基于这些模型,研究者可精准推算特定海域的潮位变化周期振幅特征,为海洋工程建设、港湾规划设计及海洋生态研究提供定量依据。 该工具集在实践中的应用方向包括: - **潮汐动力解析**:通过多站点观测数据比对,揭示区域主导潮汐成分的时空分布规律 - **数值模型构建**:基于历史观测序列建立潮汐动力学模型,实现潮汐现象的数字化重构预测 - **工程影响量化**:在海岸开发项目中评估人工构筑物对自然潮汐节律的扰动效应 - **极端事件模拟**:建立风暴潮天文潮耦合模型,提升海洋灾害预警的时空精度 工具箱以"TMD"为主程序包,内含完整的函数库示例脚本。用户部署后可通过MATLAB平台调用相关模块,参照技术文档完成全流程操作。这套工具集将专业计算能力人性化操作界面有机结合,形成了从数据输入到成果输出的完整研究链条,显著提升了潮汐研究的工程适用性科研效率。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值