麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

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

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

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

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

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

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

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

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

最后就是在socketData事件處理函數中根據當前的狀態(tài)調用相應的狀態(tài)處理函數了,創(chuàng)建currentState變量代表當前狀態(tài),根據其值調用對應的處理函數:
+展開
-ActionScript
var processFunc:Function = stateMap[ currentState ];
processFunc( ); // Invoke the appropriate processing function
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 欧美性受xxxxxx黑人xyx性爽 | 中文字幕综合在线观看 | 亚洲va久久久噜噜噜久久男同 | 成人午夜高清 | 超污视频在线看 | 久久新网址 | 黄色网址在线播放 | 91网址在线播放 | 91,视频免费看 | 久久区二区 | 国产毛片网 | 久久一区国产 | 一级毛片免费一级 | 激情综合视频 | 日韩av电影在线免费观看 | 国产性tv国产精品 | 久久99精品视频在线观看 | 久久亚洲精选 | 91香蕉国产亚洲一区二区三区 | 中文字幕网在线 | 国产精品99久久免费观看 | 毛片在线播放视频 | 操碰| 操你视频| 天堂在线资源av | 成年人在线视频 | 国产合集91合集久久日 | 中国hdxxxx护士爽在线观看 | 国产正在播放 | jizzyouxxxx | 精品一区久久久 | 全黄毛片| 久草视频免费 | 国产午夜免费视频 | 免费国产羞羞网站视频 | 成人国产精品色哟哟 | 羞羞的视频免费观看 | 亚洲人成电影在线 | 亚洲一区二区三区四区精品 | 国产精品久久久久久久亚洲按摩 | 在线播放亚洲精品 |