国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網(wǎng)站 > WEB開發(fā) > 正文

24.4.與socket服務(wù)器的狀態(tài)信號交換

2024-04-29 18:53:21
字體:
供稿:網(wǎng)友
問題
我想與服務(wù)器進(jìn)行信號交換以便知道讀取的數(shù)據(jù)內(nèi)容是什么以及如何進(jìn)行處理。
解決辦法
創(chuàng)建不同的常量來表示協(xié)議狀態(tài),用這些常量映射與之對應(yīng)的狀態(tài)處理函數(shù),在socketData事件處理函數(shù)中通過狀態(tài)映射表調(diào)用對應(yīng)的狀態(tài)處理函數(shù)。
討論
連接socket服務(wù)器需要經(jīng)過一個完整的信號交換,通常服務(wù)器初始化后發(fā)送數(shù)據(jù)給客戶端,客戶端進(jìn)行回應(yīng),服務(wù)器再回應(yīng),這個完整的處理過程一直重復(fù)直到信號交換完成,這個連接才算建好了。

就像典型的HTTP連接一樣,HTTP協(xié)議定義了一系列狀態(tài)代表不同的傳輸數(shù)據(jù),我們現(xiàn)在建立的socket連接也是最原始的無狀態(tài)的,同樣需要建立各種狀態(tài)以及維護(hù)各種狀態(tài)的函數(shù)功能。

解決辦法就是創(chuàng)建不同的狀態(tài)常量代表服務(wù)器發(fā)送的不同類型的內(nèi)容,每個狀態(tài)關(guān)聯(lián)不同的狀態(tài)處理函數(shù)。

連接一個socket服務(wù)器需要的信號交換可能有:
當(dāng)客戶端連接到服務(wù)器時,服務(wù)器立即回應(yīng),發(fā)送一個整數(shù)代表服務(wù)器所支持的協(xié)議版本。
客戶端返回一個整數(shù)表示可以通信的協(xié)議版本。
服務(wù)器發(fā)送8自己的認(rèn)證詢問。
客戶端發(fā)送認(rèn)證給服務(wù)器。
如果客戶端的回應(yīng)不合法或協(xié)議不一致或不是規(guī)定的信息則關(guān)閉連接。

要實(shí)現(xiàn)這個信號交換過程,首先要創(chuàng)建代表不同狀態(tài)的常量,例如建立如下常量:
+展開
-ActionScript
public const DETERMINE_VERSION:int = 0;
public const RECEIVE_CHALLENGE:int = 1;
public const NORMAL:int = 2;

常量設(shè)置為什么值并不重要,重要的是這些常量值都應(yīng)該不同,下一步就是創(chuàng)建代表不同狀態(tài)的處理函數(shù),如創(chuàng)建readVersion( ), readChallenge( ), 和readNormalProtocol( ),接著要把這些函數(shù)與狀態(tài)常量相關(guān)聯(lián),如下面的代碼:
+展開
-ActionScript
stateMap = new Object( );
stateMap[ DETERMINE_VERSION ] = readVersion;
stateMap[ RECEIVE_CHALLENGE ] = readChallenge;
stateMap[ NORMAL ] = readNormalProtocol;

最后就是在socketData事件處理函數(shù)中根據(jù)當(dāng)前的狀態(tài)調(diào)用相應(yīng)的狀態(tài)處理函數(shù)了,創(chuàng)建currentState變量代表當(dāng)前狀態(tài),根據(jù)其值調(diào)用對應(yīng)的處理函數(shù):
+展開
-ActionScript
var processFunc:Function = stateMap[ currentState ];
processFunc( ); // Invoke the appropriate processing function
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 静安区| 贞丰县| 无棣县| 武强县| 安康市| 报价| 兴国县| 尼木县| 金堂县| 彩票| 高清| 陇西县| 扎囊县| 祥云县| 黄冈市| 闵行区| 富源县| 苍山县| 惠水县| 布尔津县| 准格尔旗| 合阳县| 邹城市| 嵊泗县| 双桥区| 鹤峰县| 凌云县| 蒙山县| 安国市| 从江县| 菏泽市| 怀柔区| 北海市| 安新县| 邹城市| 开化县| 屯昌县| 乐平市| 于都县| 连南| 万山特区|