ActionScript3 0 Socket程式設計

2021-09-02 07:09:08 字數 2024 閱讀 9933

actionscript3.0 socket程式設計(0)

我們在使用actionscript3.0進行socket程式設計的時候需要關注下面的問題,我們將在今後的學習中逐個對下面的問題進行討論,並盡量逐漸的改進我們的程式.

1.與socket伺服器建立連線.

2.向socket伺服器傳送資料.

3.從socket伺服器讀資料.

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

5.與socket伺服器斷開,或者當伺服器想與你斷開的時候發訊息給你.

6.處理使用sockets時候引發的錯誤.

actionscript3.0 socket程式設計(1)

與socket伺服器建立連線.

解決方法:

我們通過呼叫socket.connect( )或者xmlsocket.connect( )方法並監聽網路連線的事件訊息.

討論:連線一台socket伺服器你需要確定兩個資訊,乙個是socket伺服器的網域名稱或者ip位址,另乙個是伺服器監聽的埠號.

無論你使用的是socket還是xmlsocket類的例項,連線請求都是完全的一樣的,兩個類都是使用乙個名叫connect()的方法,該方法有兩個引數:

host :

該引數為字串型別,可以是乙個網域名稱,例如"www.example.com",也可以是乙個ip位址,例如"192.168.1.101".如果socket伺服器與你該flash影片發布的web伺服器是同乙個,該引數為null.

port :

該引數為乙個表示socket伺服器監聽埠的int值.該值最小為1024.除非在伺服器中有乙個policy檔案,用於指定允許埠號小於1024.

因為flash socket程式設計是乙個非同步的過程,connect()方法不會等到乙個連線完成後再執行下一行**的執行.如果你想在乙個連線完全執行完之前與乙個socket完全繫結,那麼你將會得到乙個意想不到的結果,並且你當前的**將不能工作.

在嘗試乙個新的socket連線的時候我們最好先新增乙個連線事件***.當乙個連線建立成功,socket或者xmlsocket會發出乙個連線事件,這就可以讓你知道互動已經準備好了.

下面舉了乙個socket例項與本地socket伺服器的2900埠建立連線的例子:

package

private function onconnect( event:event ):void }}

如果你想通過xmlsocket與伺服器建立連線**也是基本一樣的.首先你建立了乙個連線事件***,然後呼叫connect()方法.所不同的是socket例項改為了xmlsocket:

package

private function onconnect( event:event ):void }}

如果連線失敗,可那是下面兩種原因的一種:一種是連線立即失敗和執行時錯誤,另一種是如果無法完成連線從而產生乙個ioerror或者securityerror事件.關於錯誤事件處理資訊的描述,我們打算改日討論.

請牢記,當與乙個主機建立乙個socket連線時,flash player要遵守如下安全沙箱規則.

1.flash的.swf檔案和主機必須嚴格的在同乙個網域名稱,只有這樣才可以成功建立連線.

2.乙個從網上發布的.swf檔案是不可以訪問本地伺服器的.

3.本地未通過認證的.swf檔案是不可以訪問任何網路資源的.

4.你想跨域訪問或者連線低於1024的埠,必須使用乙個跨域策略檔案.

如果嘗試連線未認證的域或者低端口服務,這樣就違反了安全沙箱策略,同時會產生乙個securityerror事件.這些情況都可以通過使用乙個跨域策略檔案解決.無論是socket物件還是xmlsocket物件的策略檔案,都必須在連線之前通過使用 flash.system.security.loadpolicyfile()方法載入策略檔案.具體如下:

security.loadpolicyfile("");

獲得的改策略檔案不僅定義了允許的網域名稱,還定義了埠號.如果你不設定埠號,那麼flash player預設為80埠(http協議預設埠).在標籤中可以使用逗號隔開設定多個埠號.下面這個例子就是允許訪問80和110埠.

ActionScript3 0 Socket程式設計

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 th...

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應該...