ActionScript3 0 Socket程式設計

2021-08-23 11:46:34 字數 1850 閱讀 9333

trace( event.data );

// convert the string into xml    

var response:xml = new xml( event.data );

// using e4x, access the success attribute of the "test"

// element node in the response.

// output: true

trace( response.test.@success );}}

} 注意 : 在 data 事件分發資料之前 ,xmlsocket 例項必須從伺服器收到乙個表示為空的 byte('\\0'). 也就是說 , 從伺服器僅僅只傳送所需要的字串是不夠的 , 必須在結尾處加入乙個表示為空的 byte.

actionscript3.0 socket 程式設計 (4)

4. 同 socket 伺服器進行握手 , 並確定收到了什麼樣的資料和如何處理這些資料 .

解決方法 :

建立不同的常量來宣告協議的狀態 . 使用這些常量將指定的處理函式對映到相應的狀態 . 在乙個 socketdata 事件控制器中 , 通過狀態對映呼叫這些函式的 .

討論 :

建立 socket 連線通常要處理握手這個環節 . 尤其是在伺服器初始化需要向客戶端傳送資料 . 然後客戶端通過一種特殊的方式相應這些資料 , 接著伺服器因此再次響應 . 整個處理過程直到握手完成並且建立起乙個 " 正常的 " 連線為止 .

處理伺服器的不同響應是非難的 , 主要的原因是 socketdata 事件控制器不能儲存上下文的順序 . 也就是說 , 伺服器的響應不會告訴你 " 為什麼 " 響應 , 也不告訴你這些響應資料被那個處理程式來處理 . 要想知道如何處理這些從伺服器返回的響應不能從響應的本身來獲得 , 尤其在響應變化的時候 . 或許乙個響應返回 了兩個位元組碼 , 另乙個返回了乙個整數值還跟了乙個雙精度浮點數 . 這樣看來讓響應本身處理自己是一大難題 .

我們通過建立乙個狀態量來標註不同的上下文 , 伺服器通過這些上下文將資料傳送到客戶端 . 與這些狀態量都有乙個相關聯的函式來處理該資料 , 這樣你就可以很輕鬆的按照當前的協議狀態去呼叫正確的處理函式 .

當你要與乙個 socket 伺服器建立連線需要考慮如下幾個步驟 :

1. 當與伺服器連線的時候 , 伺服器立刻返回乙個標誌伺服器可以支援的最高協議版本號的整數值 .

2. 客戶端在響應的時候會返回乙個實際使用協議的版本號 .

3. 伺服器返回乙個 8byte 的鑑定碼 .

4. 然後客戶端將這鑑定碼返回到伺服器 .

5. 如果客戶端的響應不是伺服器端所期望的 , 或者 , 就在這個時候該協議變成了乙個常規操作模式 , 於是握手結束 .

實際上在第四步可以在鑑定碼中包含更多的安全響應 . 你可以通過傳送各種加密方法的密匙來代替逐個傳送的鑑定碼 . 這通常使用在客戶端向使用者索要密碼的時候 , 然後密碼成為了加密過的 8byte 鑑定碼 . 該加密過的鑑定碼接著返回到伺服器 . 如果響應的鑑定碼匙伺服器所期望的 , 客戶端就知道該密碼是正確的 , 然後同意 建立連線 .

實現握手框架 , 你首先要為處理從伺服器返回的不同型別的資料分別建立常量 . 首先 , 你要從步驟 1 確定版本號 . 然後從步驟 3 收取鑑定碼 . 最後就是步驟 5 的常規操作模式 . 我們可以宣告

如下常量 :

public const determine_version:int = 0;

public const receive_challenge:int = 1;

public const normal:int = 2;

常量的值並不重要 , 重要的是這些值要是不同的值 , 兩兩之間不能有相同的整數值 .

&n

ActionScript3 0 Socket程式設計

actionscript3.0 socket程式設計 0 我們在使用actionscript3.0進行socket程式設計的時候需要關注下面的問題,我們將在今後的學習中逐個對下面的問題進行討論,並盡量逐漸的改進我們的程式.1.與socket伺服器建立連線.2.向socket伺服器傳送資料.3.從so...

ActionScript 3 0工廠模式例項

研究了一段時間工廠模式,順便把書裡面的例子敲一下,大概效果就是這樣。示例效果 說明 運用了兩個工廠模式,乙個是簡單工廠 shipcreator.as 建立飛行器,乙個是工廠方法 weapon.as 建立 子彈。飛機裝載的 過於耦合,如果要開發成小遊戲,還要改善。用這個例子說明工廠方法實在適合不過,飛...

ActionScript 3 0 MVC模式小例項

mvc model view controller 模型 檢視 控制器 m是指資料模型,v是指使用者介面,c則是控制器。使用mvc的目的是將m和v的實現 分離,從而使同乙個程式可以使用不同的表現形式。比如一批統計資料你可以分別用柱狀圖 餅圖來表示。c存在的目的則是確保m和v的同步,一旦m改變,v應該...