




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、在J2ME網(wǎng)絡(luò)程序開發(fā)過程中,為了節(jié)約用戶支付的網(wǎng)絡(luò)費用,很多J2ME手機網(wǎng)絡(luò)程序都支持CMWAP代理。但是由于CMWAP只是中國移動建立的一個HTTP網(wǎng)絡(luò)服務(wù)器,所以在使用HTTP網(wǎng)絡(luò)編程中,可以很方便的使用。但是在使用socket方法操作時,這個方式好象就行不通了。下面就介紹一下如何使用socket連接來穿越CMWAP代理。其實由于CMWAP是一個標(biāo)準(zhǔn)的HTTP代理服務(wù)器,也就是說可以處理任何的基于HTTP協(xié)議的轉(zhuǎn)發(fā)請求,那么就可以使用socket方式編程時使用HTTP協(xié)議即可了。實現(xiàn)原理:使用socket和CMWAP建立連接,然后將網(wǎng)絡(luò)協(xié)議設(shè)計成HTTP協(xié)議的格式,這樣CMWAP就可以繼
2、續(xù)實現(xiàn)請求的轉(zhuǎn)發(fā)了,這就是實現(xiàn)的基本原理。當(dāng)然,由于socket連接方式可以實現(xiàn)持續(xù)連接,這里的持續(xù)連接只存在于手機和CMWAP之間,但是可以只建立一次連接就實現(xiàn)多次的發(fā)送,還是基于請求-響應(yīng)結(jié)構(gòu)實現(xiàn)的,所以可以說實現(xiàn)了一部分socket的功能,而服務(wù)器端可以采用已有的HTTP服務(wù)器,從而降低開發(fā)成本和時間。該技術(shù)的優(yōu)勢主要有以下幾點:u 使用CMWAP進行數(shù)據(jù)傳輸,可以為用戶節(jié)約流量費用。u 由于手機和CMWAP之間建立的是持續(xù)連接,所以可以提高網(wǎng)絡(luò)
3、響應(yīng)速度。u 使用該方式,可以實現(xiàn)服務(wù)器端兼容HTTP連接和socket連接,也就是使用一組服務(wù)器,降低開發(fā)成本和減少開發(fā)時間。實現(xiàn)網(wǎng)絡(luò)操作的代碼如下所示:package cmwaptest;import java.io.*;import javax.microedition.io.*;/* * 測試使用socket連接穿越CMWAP服務(wù)器 */public class CmwapThread extends Thread CmwapForm cf; public CmwapThread(CmwapForm cf) thi
4、s.cf = cf; public void run() try /測試 cf.displayInfo("開始建立連接!"); /使用代理連接 SocketConnection sc = (SocketConnection)Connector.open("socket:/72:80"); /測試 cf.displayInfo("連接建立完畢!"); /發(fā)送數(shù)據(jù) OutputStream os = sc.openOutputStream(); String requestLine = "
5、;get http/1.0rn" String header = "accept:*/*rnrn" os.write(requestLine.getBytes(); os.write(header.getBytes(); os.flush(); /測試 cf.displayInfo("數(shù)據(jù)發(fā)送完畢!"); /接收數(shù)據(jù) InputStream is = sc.openInputStream(); byte data = new byte10240; int num = is.read(data); /測試 cf
6、.displayInfo("數(shù)據(jù)接受完畢!" + "數(shù)據(jù)長度為:"+ num); /處理數(shù)據(jù) cf.doStr(data,num); sc.close(); catch(Exception e) /e.printStackTrace(); cf.doError(e.toString(); 請問一下你的實測結(jié)果如何? 我的實測環(huán)境是:服務(wù)器采用tomcat+servlet,手機是motorola e398,實測結(jié)果如下: 1、關(guān)于第一點,如果用HttpConnection的GET方式收只有一個字符a的網(wǎng)頁流量是1101,SocketConnec
7、tion是929,我想這是HttpConnection底層實現(xiàn)添加了一些http頭的原因。 2、關(guān)于第二點,wap網(wǎng)關(guān)會自動添加“connection: close”,如果是http服務(wù)器,也會相應(yīng)返回這個標(biāo)志并關(guān)閉鏈接(這點在rfc2616中也有說明)。所以說想持續(xù)連接是不太可能的,如果自己寫一個服務(wù)器來解析HTTP,忽略這個標(biāo)志會如何,這些我就沒有試了。:)to alien75 : 首先感謝你的實際測試。 關(guān)于你提到的問題,解釋如下: 1、關(guān)于這個流量問題,你可以控制客戶端以及服務(wù)器端的頭信息數(shù)量來達到控制流量的目的,而且CMWAP的收費可以包月,這個是CMNET無法比擬的。 2、通過這種
8、方式實現(xiàn)的是半持續(xù)的連接,也就是只有手機和CMWAP直接是以socket進行連接,所以是持續(xù)的,而CMWAP和服務(wù)器之間使用的是HTTP連接,這個是每次需要重新建立的。但是HTTP編程最大的延遲來自于重新建立連接,所以使用該方式傳輸數(shù)據(jù)雖然無法利用過多的socket特性,但是可以在節(jié)約費用的同時,實現(xiàn)響應(yīng)速度的提高。 最后補充一點,該種技術(shù)只是一種過渡技術(shù),隨著socket的普及以及費用的降低,這種技術(shù)會被淘汰。更正一點,我不是取的網(wǎng)頁,而是在servlet中直接用輸入輸出流來做的。to mailbomb: 多謝你的用時回復(fù) 針對你的第二點說明,我做了一個簡單測試。還是相同的測試環(huán)境和測試數(shù)據(jù)
9、,做了兩種測試。結(jié)果如下: 1、檢測數(shù)據(jù)負(fù)載效率。每隔5秒發(fā)一個請求,20次后流量是11852。如果是HTTP方式,每一次事務(wù)請求從發(fā)起到完成都要大概1K吧。 2、檢測手機多長時間不發(fā)數(shù)據(jù)WAP網(wǎng)關(guān)會斷開鏈接。我是通過發(fā)送拋出異常來判斷,發(fā)現(xiàn)這個值是25秒左右。測試時間是上午10點,而且我覺得這個值與各地的網(wǎng)關(guān)類型以及高峰時段應(yīng)該有關(guān)連,所以只能做為一個參考值。因此象那種想利用現(xiàn)有連接發(fā)送的數(shù)據(jù)間隔不能太長,否則還是要重連的。 由此看來這種方式在目前是可行的,不知道3G出來后,CMCC會不會開放SOCKET? 在此再惡一把CMCC,就咱中國還分個什么CMNET和CMWAP,也算是中國特色吧。
10、_/使用代理連接 SocketConnection sc = (SocketConnection)Connector.open("socket:/72:80"); 之后,如何連接到我的url服務(wù)器? 返回的消息是不是可以保證完整性?to orient : 其實CMWAP是一個HTTP代理服務(wù)器,所以你的URL地址包含在發(fā)送過去的協(xié)議數(shù)據(jù)中,如代碼: String requestLine = "get http/1.0rn" 這里是發(fā)送到的地址非常感激你的回復(fù)。 因為我要模仿cmnet連接,那么協(xié)議數(shù)據(jù)中每次都有URL地址,同時我的消息(b
11、yte 形式)也放在里邊么? 代理服務(wù)器(cmwap)如何轉(zhuǎn)發(fā)我的消息(byte 形式)到我的指定服務(wù)器。 因為你的String requestLine = "get http/1.0rn" 是get連接方式么。 如果方便,請你留下MSN。我的是jadyorient可以寫一個post 連接的例子么。 呵 URL: static final String HOST = "03" static final int TCP_PORT = 9002; 我登陸平臺時 發(fā)送消息 : 其中類型(short),賬號(short),密碼3項(st
12、ring)。 服務(wù)器返回消息: 其中類型(short),ok (byte)。 手機6600。to orient : 只需要做如下更改即可: String requestLine = "post 03:9002 http/1.0rn" 你的協(xié)議部分可以寫入實體數(shù)據(jù)部分即可使用Socket連接穿越CMWAP代理作者:陳躍峰出自:版權(quán)所有,未經(jīng)允許嚴(yán)禁轉(zhuǎn)載! 在J2ME網(wǎng)絡(luò)程序開發(fā)過程中,為了節(jié)約用戶支付的網(wǎng)絡(luò)費用,很多J2ME手機網(wǎng)絡(luò)程序都支持CMWAP代理。但是由于CMWAP只是中國移動建立的一個HTTP網(wǎng)絡(luò)服務(wù)器,所以在使用H
13、TTP網(wǎng)絡(luò)編程中,可以很方便的使用。但是在使用socket方法操作時,這個方式好象就行不通了。下面就介紹一下如何使用socket連接來穿越CMWAP代理。其實由于CMWAP是一個標(biāo)準(zhǔn)的HTTP代理服務(wù)器,也就是說可以處理任何的基于HTTP協(xié)議的轉(zhuǎn)發(fā)請求,那么就可以使用socket方式編程時使用HTTP協(xié)議即可了。實現(xiàn)原理:使用socket和CMWAP建立連接,然后將網(wǎng)絡(luò)協(xié)議設(shè)計成HTTP協(xié)議的格式,這樣CMWAP就可以繼續(xù)實現(xiàn)請求的轉(zhuǎn)發(fā)了,這就是實現(xiàn)的基本原理。當(dāng)然,由于socket連接方式可以實現(xiàn)持續(xù)連接,這里的持續(xù)連接只存在于手機和CMWAP之間,但是可以只建立一次連接就實現(xiàn)多次的發(fā)送,還
14、是基于請求-響應(yīng)結(jié)構(gòu)實現(xiàn)的,所以可以說實現(xiàn)了一部分socket的功能,而服務(wù)器端可以采用已有的HTTP服務(wù)器,從而降低開發(fā)成本和時間。該技術(shù)的優(yōu)勢主要有以下幾點:u 使用CMWAP進行數(shù)據(jù)傳輸,可以為用戶節(jié)約流量費用。u 由于手機和CMWAP之間建立的是持續(xù)連接,所以可以提高網(wǎng)絡(luò)響應(yīng)速度。u 使用該方式,可以實現(xiàn)服務(wù)器端兼容HTTP連接和socket連接,也就是使用一組服務(wù)器,降低
15、開發(fā)成本和減少開發(fā)時間。實現(xiàn)網(wǎng)絡(luò)操作的代碼如下所示:package cmwaptest;import java.io.*;import javax.microedition.io.*;/* * 測試使用socket連接穿越CMWAP服務(wù)器 */public class CmwapThread extends Thread CmwapForm cf; public CmwapThread(CmwapForm cf) this.cf = cf; public void run() try /測試 cf.displayInfo("開始建立連接!"); /使用代理連接
16、 SocketConnection sc = (SocketConnection)Connector.open("socket:/72:80"); /測試 cf.displayInfo("連接建立完畢!"); /發(fā)送數(shù)據(jù) OutputStream os = sc.openOutputStream(); String requestLine = "get http/1.0rn" String header = "accept:*/*rnrn" os.write(requestLine.getBytes(); os.write(header.getBytes(); os.flush(); /測試 cf.displayInfo("數(shù)據(jù)發(fā)送完畢!"); /接收數(shù)據(jù) InputStre
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中國汽車尾燈焊接機行業(yè)發(fā)展前景預(yù)測及投資策略研究報告
- 中國重型燃?xì)廨啓C行業(yè)發(fā)展運行現(xiàn)狀及投資策略研究報告
- 2025年有色金屬稀土行業(yè)深度分析報告
- 2025年中國瓦楞機械行業(yè)市場發(fā)展前景及發(fā)展趨勢與投資戰(zhàn)略研究報告
- 2021-2026年中國液壓隔膜計量泵市場競爭態(tài)勢及投資戰(zhàn)略規(guī)劃研究報告
- 安全生產(chǎn)三落實是什么
- 培養(yǎng)情緒管理能力教育心理學(xué)在情感教育中的應(yīng)用
- 教育大數(shù)據(jù)助力教育公平與均衡發(fā)展
- 大數(shù)據(jù)技術(shù)驅(qū)動的學(xué)生全面發(fā)展方案研究報告
- 設(shè)計單位準(zhǔn)入管理辦法
- 星級酒店會議管理制度
- 抗精神病藥氯丙嗪講課件
- 產(chǎn)科質(zhì)量控制體系專題匯報
- 燃?xì)馊霊艋卦L管理制度
- 磨削考試題及答案
- 2025-2030年中國成人紙尿褲行業(yè)市場深度分析及發(fā)展前景與投資機會研究報告
- 綜合與實踐 白晝時長規(guī)律的探究 同步練習(xí)(含答案)人教版七年級數(shù)學(xué)下冊
- 2024年河南省南召縣教育局公開招聘試題含答案分析
- 2025春季學(xué)期國開電大專科《機械制圖》一平臺在線形考(形成性任務(wù)1至4)試題及答案
- 紅外熱像儀性能提升行業(yè)深度調(diào)研及發(fā)展項目商業(yè)計劃書
評論
0/150
提交評論