新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 使用Socket連接穿越CMWAP代理

        使用Socket連接穿越CMWAP代理

        作者: 時(shí)間:2012-05-04 來源:網(wǎng)絡(luò) 收藏

        在J2ME網(wǎng)絡(luò)程序開發(fā)過程中,為了節(jié)約用戶支付的網(wǎng)絡(luò)費(fèi)用,很多J2ME手機(jī)網(wǎng)絡(luò)程序都支持

        本文引用地址:http://www.104case.com/article/149133.htm

        但是由于只是中國移動(dòng)建立的一個(gè)HTTP網(wǎng)絡(luò)服務(wù)器,所以在HTTP網(wǎng)絡(luò)編程中,可以很方便的。但是在socket方法操作時(shí),這個(gè)方式好象就行不通了。

        下面就介紹一下如何使用socket。其實(shí)由于CMWAP是一個(gè)標(biāo)準(zhǔn)的HTTP服務(wù)器,也就是說可以處理任何的基于HTTP協(xié)議的轉(zhuǎn)發(fā)請求,那么就可以使用socket方式編程時(shí)使用HTTP協(xié)議即可了。

        實(shí)現(xiàn)原理:使用socket和CMWAP建立,然后將網(wǎng)絡(luò)協(xié)議設(shè)計(jì)成HTTP協(xié)議的格式,這樣CMWAP就可以繼續(xù)實(shí)現(xiàn)請求的轉(zhuǎn)發(fā)了,這就是實(shí)現(xiàn)的基本原理。

        當(dāng)然,由于socket方式可以實(shí)現(xiàn)持續(xù)連接,這里的持續(xù)連接只存在于手機(jī)和CMWAP之間,但是可以只建立一次連接就實(shí)現(xiàn)多次的發(fā)送,還是基于請求-響應(yīng)結(jié)構(gòu)實(shí)現(xiàn)的,所以可以說實(shí)現(xiàn)了一部分socket的功能,而服務(wù)器端可以采用已有的HTTP服務(wù)器,從而降低開發(fā)成本和時(shí)間。

        該技術(shù)的優(yōu)勢主要有以下幾點(diǎn):

        u使用CMWAP進(jìn)行數(shù)據(jù)傳輸,可以為用戶節(jié)約流量費(fèi)用。

        u由于手機(jī)和CMWAP之間建立的是持續(xù)連接,所以可以提高網(wǎng)絡(luò)響應(yīng)速度。

        u使用該方式,可以實(shí)現(xiàn)服務(wù)器端兼容HTTP連接和socket連接,也就是使用一組服務(wù)器,降低開發(fā)成本和減少開發(fā)時(shí)間。

        實(shí)現(xiàn)網(wǎng)絡(luò)操作的代碼如下所示:

        packagecmwaptest;

        importjava.io.*;

        importjavax.microedition.io.*;

        /**

        *測試使用socket連接CMWAP服務(wù)器

        */

        publicclassCmwapThreadextendsThread{

        CmwapFormcf;

        publicCmwapThread(CmwapFormcf){

        this.cf=cf;

        }

        publicvoidrun(){

        try{

        //測試

        cf.displayInfo(開始建立連接!);

        //使用代理連接

        Connectionsc=(Connection)Connector.open(socket://10.0.0.172:80);

        //測試

        cf.displayInfo(連接建立完畢!);

        //發(fā)送數(shù)據(jù)

        OutputStreamos=sc.openOutputStream();

        StringrequestLine=gethttp://www.freewebs.com/cqucyf/a.htmhttp/1.0rn;

        Stringheader=accept:*/*rnrn;

        os.write(requestLine.getBytes());

        os.write(header.getBytes());

        os.flush();

        //測試

        cf.displayInfo(數(shù)據(jù)發(fā)送完畢!);

        //接收數(shù)據(jù)

        InputStreamis=sc.openInputStream();

        byte[]data=newbyte[10240];

        intnum=is.read(data);

        //測試

        cf.displayInfo(數(shù)據(jù)接受完畢!+數(shù)據(jù)長度為:+num);

        //處理數(shù)據(jù)

        cf.doStr(data,num);

        sc.close();

        }catch(Exceptione){

        //e.printStackTrace();

        cf.doError(e.toString());

        }

        }

        }



        關(guān)鍵詞: CMWAP 代理 穿越 連接 Socket 使用

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 洞口县| 恩平市| 都匀市| 祁门县| 民和| 阿拉善左旗| 黑龙江省| 永康市| 逊克县| 织金县| 黎城县| 醴陵市| 明星| 齐河县| 丽江市| 汉阴县| 大化| 安达市| 青神县| 叶城县| 大埔区| 灵台县| 韩城市| 玛多县| 增城市| 扶绥县| 谷城县| 濮阳县| 余姚市| 普定县| 丰县| 筠连县| 右玉县| 西平县| 噶尔县| 兴安盟| 淮北市| 通江县| 伊春市| 富锦市| 永修县|