套件 | flash.net |
類別 | public class Socket |
繼承 | Socket EventDispatcher Object |
實作 | IDataInput, IDataOutput |
子類別 | SecureSocket |
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Socket 類別適用於使用二進位通訊協定的伺服器。
若要使用 Socket 類別的方法,請先使用建構函式 new Socket
建立 Socket 物件。
通訊端會以非同步傳輸與接收資料。
在某些作業系統中,會在執行影格之間自動呼叫 flush(),但在其他作業系統 (例如 Windows),除非您明確呼叫 flush()
,否則不會傳送資料。為了確保您的應用程式在所有的作業系統中,都能確實的發揮作用,建議您在寫入每個訊息 (或相關的資料群組) 至通訊端後,呼叫 flush()
方法。
在 Adobe AIR 中,當偵聽 ServerSocket 時收到外部處理程序的連線時,也會建立 Socket 物件。發生 ServerSocketConnectEvent 時,會傳送代表連線的 Socket。 您的應用程式負責維護此 Socket 物件的參照。如果不是,則 Socket 物件容易被當成垃圾收集起來,且執行階段可能會刪除它而不加以警告。
在具有檔案系統的本機安全執行程序中執行的 SWF 內容無法使用通訊端。
目標主機上的「通訊端原則檔」會指定 SWF 檔可從中建立通訊端連線的主機,以及這些連線的目標連接埠。有關通訊端原則檔的安全性需求在最新的幾個 Flash Player 版本中已經變得更加嚴謹。Adobe 建議在所有的 Flash Player 版本中使用通訊端原則檔;在某些情況下,通訊端原則檔是必要的。因此,如果您使用 Socket 物件,請確定目標主機會視需要提供通訊端原則檔。
下列清單摘要說明不同 Flash Player 版本中的通訊端原則檔需求:
- 在 Flash Player 9.0.124.0 和更新版本中,任何通訊端連線都需要通訊端原則檔。也就是說,不論您要連線至哪個連接埠,目標主機上都需要有通訊端原則檔,即使連線至提供 SWF 檔之相同主機上的連接埠,通訊端原則檔也是必要的項目。
- 在 Flash Player 9.0.115.0 版和舊版中,如果您要連線至低於 1024 的連接埠號,或是如果您要連線至 SWF 檔提供主機以外的主機,目標主機上就需要有通訊端原則檔。
- 在 Flash Player 9.0.115.0 中,即使不需要通訊端原則檔,但若目標主機未提供通訊端原則檔,當使用 Flash Player 除錯版時會顯示警告。
- 在 AIR 中,對於在應用程式安全執行程序中執行的內容而言,通訊端原則檔是不必要的。對任何在 AIR 應用程式安全執行程序以外執行之內容所建立的通訊端連線,通訊端原則檔是必要的。
如需安全性詳細資訊,請參閱「Flash Player 開發人員中心」主題:安全性
相關 API 元素
屬性 | 定義自 | ||
---|---|---|---|
bytesAvailable : uint [唯讀]
可在輸入緩衝區中讀取之資料的位元組數。 | Socket | ||
bytesPending : uint [唯讀]
指出寫入緩衝區中剩餘的位元組數目。 | Socket | ||
connected : Boolean [唯讀]
指出此 Socket 物件目前是否已連線。 | Socket | ||
constructor : Object
類別物件的參照或是特定物件實體的建構函數。 | Object | ||
endian : String
表示資料的位元組順序。 | Socket | ||
localAddress : String [唯讀]
在本機電腦上,這個通訊端繫結的 IP 位址。 | Socket | ||
localPort : int [唯讀]
在本機電腦上,這個通訊端繫結的通訊埠。 | Socket | ||
objectEncoding : uint
會控制寫入或讀取物件時使用的 AMF 版本。 | Socket | ||
remoteAddress : String [唯讀]
這個通訊端連線的遠端電腦 IP 位址。 | Socket | ||
remotePort : int [唯讀]
這個通訊端連線的遠端電腦連接埠。 | Socket | ||
timeout : uint
指出等待連線的毫秒數。 | Socket |
方法 | 定義自 | ||
---|---|---|---|
建立新的 Socket 物件。 | Socket | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
會在 EventDispatcher 物件註冊事件偵聽程式,以便讓偵聽程式收到事件的通知。 | EventDispatcher | ||
會關閉通訊端。 | Socket | ||
會將通訊端連線至指定的主機和連接埠。 | Socket | ||
會將事件傳送到事件流程。 | EventDispatcher | ||
會清除通訊端輸出緩衝區中累積的任何資料。 | Socket | ||
會檢查 EventDispatcher 物件是否有對特定的事件類型註冊偵聽程式。 | EventDispatcher | ||
指出物件是否有已定義的指定屬性。 | Object | ||
指出 Object 類別的實體是否位於指定為參數的物件原型鏈中。 | Object | ||
指出指定的屬性是否存在,以及是否可列舉。 | Object | ||
會從通訊端讀取 Boolean 值。 | Socket | ||
會從通訊端讀取具有正負號的位元組。 | Socket | ||
從通訊端讀取由 length 參數指定的資料位元組數目。 | Socket | ||
會從通訊端讀取 IEEE 754 雙精度浮點數。 | Socket | ||
會從通訊端讀取 IEEE 754 單精度浮點數。 | Socket | ||
會從通訊端讀取具有正負號的 32 位元整數。 | Socket | ||
會使用指定的字元集,從位元組串流讀取多位元組字串。 | Socket | ||
readObject():*
會從通訊端讀取物件,並以 AMF 序列化格式編碼。 | Socket | ||
會從通訊端讀取具有正負號的 16 位元整數。 | Socket | ||
會從通訊端讀取無正負號的位元組。 | Socket | ||
會從通訊端讀取無正負號的 32 位元整數。 | Socket | ||
會從通訊端讀取無正負號的 16 位元整數。 | Socket | ||
會從通訊端讀取 UTF-8 字串。 | Socket | ||
從通訊端讀取由 length 參數指定的 UTF-8 資料位元組數目,然後傳回字串。 | Socket | ||
會從 EventDispatcher 物件移除偵聽程式。 | EventDispatcher | ||
為迴圈作業設定動態屬性的可用性。 | Object | ||
傳回代表此物件的字串,根據地區特定慣例進行格式化。 | Object | ||
會傳回指定之物件的字串形式。 | Object | ||
會傳回指定之物件的基本值。 | Object | ||
檢查此 EventDispatcher 物件是否已註冊事件偵聽程式,或者此物件的任何祖系已為特定事件類型註冊事件偵聽程式。 | EventDispatcher | ||
會將 Boolean 值寫入通訊端。 | Socket | ||
會將位元組寫入通訊端。 | Socket | ||
會從指定的位元組陣列寫入位元組的序列。 | Socket | ||
會將 IEEE 754 雙精度浮點數寫入通訊端。 | Socket | ||
會將 IEEE 754 單精度浮點數寫入通訊端。 | Socket | ||
會將具有正負號的 32 位元整數寫入通訊端。 | Socket | ||
會使用指定的字元集,從位元組串流寫入多位元組字串。 | Socket | ||
會使用 AMF 序列化格式,將物件寫入通訊端。 | Socket | ||
會將 16 位元整數寫入通訊端。 | Socket | ||
會將無正負號的 32 位元整數寫入通訊端。 | Socket | ||
將下列資料寫入通訊端:無正負號的 16 位元整數 (表示指定之 UTF-8 字串的長度,以位元組為單位),後面接著字串本身。 | Socket | ||
會將 UTF-8 字串寫入通訊端。 | Socket |
事件 | 摘要 | 定義自 | ||
---|---|---|---|---|
[廣播事件] 當 Flash Player 或 AIR 應用程式取得作業系統焦點並成為作用中時傳送。 | EventDispatcher | |||
會在伺服器關閉通訊端連線時傳送。 | Socket | |||
會在網路連線已建立時傳送。 | Socket | |||
[廣播事件] 當 Flash Player 或 AIR 應用程式失去作業系統焦點並成為非作用中時傳送。 | EventDispatcher | |||
發生輸入/輸出錯誤,因而導致傳送或載入作業失敗時傳送。 | Socket | |||
在通訊端將資料從它的寫入緩衝區移到網路傳輸層時傳送 | Socket | |||
如果對 Socket.connect() 的呼叫嘗試連線至呼叫者安全執行程序所禁止的伺服器,或連線至小於 1024 的連接埠,而且沒有通訊端原則檔以允許這樣的連線,則會傳送。 | Socket | |||
在通訊端收到資料時傳送。 | Socket |
bytesAvailable | 屬性 |
bytesPending | 屬性 |
bytesPending:uint
[唯讀] 語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 11, AIR 3.0 |
指出寫入緩衝區中剩餘的位元組數目。
將這個屬性與 OutputProgressEvent 結合。每當將寫入緩衝區中的資料寫入網路時,都會擲回 OutputProgressEvent。在事件處理常式中,您可以檢查 bytesPending
以查看緩衝區中還有多少資料等待寫入。當 bytesPending
傳回 0 時,表示所有資料已經從寫入緩衝區傳輸到網路,並且可以安全地執行如移除事件處理常式、使通訊端參考無效、啟動佇列中的下一個上傳等動作。
實作
public function get bytesPending():uint
相關 API 元素
connected | 屬性 |
endian | 屬性 |
localAddress | 屬性 |
localPort | 屬性 |
objectEncoding | 屬性 |
remoteAddress | 屬性 |
remotePort | 屬性 |
timeout | 屬性 |
Socket | () | 建構函式 |
public function Socket(host:String = null, port:int = 0)
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
建立新的 Socket 物件。如果沒有指定任何參數,就會建立最初中斷連線的通訊端。 如果有指定參數,就會嘗試連線至指定的主機和連接埠。
注意:強烈建議使用「不含參數」的建構函式形式,接著加入任何事件偵聽程式,最後再搭配 host
和 port
參數呼叫 connect
方法。這個序列會保證所有事件偵聽程式都會正常運作。
host:String (default = null ) — 完整的 DNS 網域名稱,或是 IP 位址。以十進位標記法表示的 IPv4 位址,例如 192.0.2.0。在 Flash Player 9.0.115.0 和 AIR 1.0 (和更新版本) 中,您可以使用十六進位標記法指定 IPv6 位址,例如 2001:db8:ccc3:ffff:0:444d:555e:666f。您也可以指定 null ,以連線到 SWF 檔所在的主機伺服器。如果發出這個呼叫的 SWF 檔正要在某個網頁瀏覽器中執行,則 host 就必須位於該 SWF 檔所在的網域中。
| |
port:int (default = 0 ) — 目標主機上用來建立連線的 TCP 連接埠號。在 Flash Player 9.0.124.0 和更新版本中,目標主機必須提供通訊端原則檔,以指定允許從提供 SWF 檔之主機至指定連接埠的通訊端連線。在舊版 Flash Player 中,只有在連線至低於 1024 的連接埠號,或是要連線至 SWF 檔提供主機以外的主機時,才需要通訊端原則檔。
|
事件
connect: — 會在網路連線已建立時傳送。
| |
ioError: — 發生輸入/輸出錯誤,因而導致連線失敗時傳送。
| |
securityError: —
當 Socket.connect() 呼叫嘗試連線的伺服器未提供通訊端原則檔,或連線的伺服器其原則檔未授與呼叫端主機對指定的連接埠進行存取時傳送。如需原則檔的詳細資訊,請參閱「ActionScript 3.0 開發人員指南」中的「網站控制 (原則檔)」及「Flash Player 開發人員中心」主題:「安全性」。
|
擲回值
SecurityError — 這個錯誤會因為下列原因而發生於 SWF 內容中:
|
close | () | 方法 |
connect | () | 方法 |
public function connect(host:String, port:int):void
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
會將通訊端連線至指定的主機和連接埠。
如果連線立即失敗,就會傳送事件或擲回例外: 如果已指定主機,就會傳送錯誤事件;如果沒有指定任何主機,就會擲回例外。 否則,事件會回報連線的狀態。 如果通訊端已經連線,就會先關閉現有的連線。
參數
host:String — 要連線的目標主機名稱或 IP 位址。如果沒有指定任何主機,聯繫的主機就是呼叫之 檔所在的主機。 如果您並未指定主機,請使用事件偵聽程式來判斷連線是否成功。
| |
port:int — 要連線的目標連接埠號。
|
事件
connect: — 會在網路連線已建立時傳送。
| |
ioError: — 在已指定主機,而且發生輸入/輸出錯誤並導致連線失敗時傳送。
| |
securityError: — 當 Socket.connect() 呼叫嘗試連線的伺服器未提供通訊端原則檔,或連線的伺服器其原則檔未授與呼叫端主機對指定的連接埠進行存取時傳送。如需原則檔的詳細資訊,請參閱「ActionScript 3.0 開發人員指南」中的「網站控制 (原則檔)」及「Flash Player 開發人員中心」主題:「安全性」。
|
擲回值
IOError — 沒有指定主機,而且連線已失敗。
| |
SecurityError — 這個錯誤會因為下列原因而發生於 SWF 內容中:
|
flush | () | 方法 |
public function flush():void
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
會清除通訊端輸出緩衝區中累積的任何資料。
在某些作業系統中,會在執行影格之間自動呼叫 flush(),但在其他作業系統 (例如 Windows),除非您明確呼叫 flush()
,否則不會傳送資料。為了確保您的應用程式在所有的作業系統中,都能確實的發揮作用,建議您在寫入每個訊息 (或相關的資料群組) 至通訊端後,呼叫 flush()
方法。
擲回值
IOError — 通訊端上發生 I/O 錯誤,或者通訊端未開啟。
|
readBoolean | () | 方法 |
readByte | () | 方法 |
readBytes | () | 方法 |
public function readBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
從通訊端讀取由 length 參數指定的資料位元組數目。這些位元組會讀入指定的位元組陣列 (從 offset
表示的位置開始)。
參數
bytes:ByteArray — 要將資料讀入的 ByteArray 物件。
| |
offset:uint (default = 0 ) — 位元組陣列中應該開始進行資料讀取的偏移值。
| |
length:uint (default = 0 ) — 要讀取的位元組數。 預設值為 0,會讀取所有可用的資料。
|
擲回值
EOFError — 沒有足夠的資料可進行讀取。
| |
IOError — 通訊端上發生 I/O 錯誤,或者通訊端未開啟。
|
readDouble | () | 方法 |
readFloat | () | 方法 |
readInt | () | 方法 |
readMultiByte | () | 方法 |
public function readMultiByte(length:uint, charSet:String):String
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
會使用指定的字元集,從位元組串流讀取多位元組字串。
參數
length:uint — 所要讀取之位元組串流的位元組數。
| |
charSet:String — 代表字元集之字串,該字元集用於解譯位元組。 可能的字元集字串包括 "shift_jis" 、"CN-GB" 和 "iso-8859-1" 。 如需完整清單,請參閱「支援的字元集」。
注意:如果目前的系統無法辨識 |
String — UTF-8 編碼字串。
|
擲回值
EOFError — 沒有足夠的資料可進行讀取。
|
readObject | () | 方法 |
readShort | () | 方法 |
readUnsignedByte | () | 方法 |
readUnsignedInt | () | 方法 |
readUnsignedShort | () | 方法 |
readUTF | () | 方法 |
readUTFBytes | () | 方法 |
writeBoolean | () | 方法 |
writeByte | () | 方法 |
writeBytes | () | 方法 |
public function writeBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
會從指定的位元組陣列寫入位元組的序列。 寫入作業會從 offset
指定的位置開始。
如果您省略 length
參數,預設長度 0 就會導致方法寫入整個緩衝區 (從 offset
開始)。
如果您同時省略 offset
參數,就會寫入整個緩衝區。
參數
bytes:ByteArray — 做為寫入之資料來源的 ByteArray 物件。
| |
offset:uint (default = 0 ) — bytes ByteArray 物件中應該開始進行資料寫入的偏移 (從零開始)。
| |
length:uint (default = 0 ) — 要寫入的位元組數目。預設值 0 會導致寫入整個緩衝區 (從 offset 參數指定的值開始)。
|
擲回值
IOError — 通訊端上發生 I/O 錯誤,或者通訊端未開啟。
| |
RangeError — 如果 offset 大於在 bytes 中指定的 ByteArray 長度,或是如果指定由 offset 寫入的資料加上 length 的總數超過可用的資料。
|
相關 API 元素
writeDouble | () | 方法 |
writeFloat | () | 方法 |
writeInt | () | 方法 |
writeMultiByte | () | 方法 |
public function writeMultiByte(value:String, charSet:String):void
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
會使用指定的字元集,從位元組串流寫入多位元組字串。
參數
value:String — 要寫入的字串值。
| |
charSet:String — 代表字元集之字串,該字元集用於解譯位元組。 可能的字元集字串包括 "shift_jis" 、"CN-GB" 和 "iso-8859-1" 。 如需完整清單,請參閱「支援的字元集」。
|
相關 API 元素
writeObject | () | 方法 |
writeShort | () | 方法 |
writeUnsignedInt | () | 方法 |
writeUTF | () | 方法 |
public function writeUTF(value:String):void
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
將下列資料寫入通訊端:無正負號的 16 位元整數 (表示指定之 UTF-8 字串的長度,以位元組為單位),後面接著字串本身。
寫入字串之前,此方法會計算表示該字串所有字元所需的位元組數目。
參數
value:String — 要寫入通訊端的字串。
|
擲回值
RangeError — 長度超過 65535。
| |
IOError — 通訊端上發生 I/O 錯誤,或者通訊端未開啟。
|
相關 API 元素
writeUTFBytes | () | 方法 |
close | 事件 |
flash.events.Event
屬性 Event.type =
flash.events.Event.CLOSE
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
會在伺服器關閉通訊端連線時傳送。
只有當伺服器關閉連線時,才會傳送 close
事件。當您呼叫 Socket.close()
方法時,則不會傳送此事件。
Event.CLOSE
常數會定義 close
事件物件的 type
屬性值。
這個事件具有下列屬性:
屬性 | 值 |
---|---|
bubbles | false |
cancelable | false ;沒有要取消的預設行為指令。 |
currentTarget | 正主動使用事件偵聽程式處理 Event 物件的物件。 |
target | 其連線已關閉的物件。 |
connect | 事件 |
flash.events.Event
屬性 Event.type =
flash.events.Event.CONNECT
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
會在網路連線已建立時傳送。
Event.CONNECT
常數會定義 connect
事件物件的 type
屬性值。
這個事件具有下列屬性:
屬性 | 值 |
---|---|
bubbles | false |
cancelable | false ;沒有要取消的預設行為指令。 |
currentTarget | 正主動使用事件偵聽程式處理 Event 物件的物件。 |
target | 已建立網路連線的 Socket 或 XMLSocket 物件。 |
ioError | 事件 |
flash.events.IOErrorEvent
屬性 IOErrorEvent.type =
flash.events.IOErrorEvent.IO_ERROR
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
發生輸入/輸出錯誤,因而導致傳送或載入作業失敗時傳送。
定義ioError
事件物件的 type
屬性值。
這個事件具有下列屬性:
屬性 | 值 |
---|---|
bubbles | false |
cancelable | false ;沒有要取消的預設行為指令。 |
currentTarget | 正主動使用事件偵聽程式處理 Event 物件的物件。 |
errorID | 與特定錯誤相關聯的參考號碼 (僅限 AIR)。 |
target | 遭遇輸入/輸出錯誤的網路物件。 |
text | 要顯示為錯誤訊息的文字。 |
outputProgress | 事件 |
securityError | 事件 |
flash.events.SecurityErrorEvent
屬性 SecurityErrorEvent.type =
flash.events.SecurityErrorEvent.SECURITY_ERROR
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
如果對 Socket.connect()
的呼叫嘗試連線至呼叫者安全執行程序所禁止的伺服器,或連線至小於 1024 的連接埠,而且沒有通訊端原則檔以允許這樣的連線,則會傳送。
注意:在 AIR 應用程式中,在應用程式安全執行程序中執行的內容是允許不需要通訊端原則檔,就可以連線到任何伺服器及連接埠號碼。
SecurityErrorEvent.SECURITY_ERROR
常數會定義 securityError
事件物件的 type
屬性值。
這個事件具有下列屬性:
屬性 | 值 |
---|---|
bubbles | false |
cancelable | false ;沒有要取消的預設行為指令。 |
currentTarget | 正主動使用事件偵聽程式處理 Event 物件的物件。 |
target | 回報安全性錯誤的網路物件。 |
text | 要顯示為錯誤訊息的文字。 |
相關 API 元素
socketData | 事件 |
flash.events.ProgressEvent
屬性 ProgressEvent.type =
flash.events.ProgressEvent.SOCKET_DATA
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
在通訊端收到資料時傳送。
通訊端接收的資料會保留在通訊端中,直到被讀取為止。您不需要在此事件的處理常式中讀取所有可用的資料。
類型為 socketData
的事件不會使用 ProgressEvent.bytesTotal
屬性。
socketData
事件物件的 type
屬性值。
這個事件具有下列屬性:
屬性 | 值 |
---|---|
bubbles | false |
cancelable | false ;沒有要取消的預設行為指令。 |
currentTarget | 主動處理 Event 的物件。 |
bytesLoaded | 在偵聽程式處理事件時,載入的項目或位元組數目。 |
bytesTotal | 0;socketData 事件物件無法使用此屬性。 |
target | 回報進度的通訊端。 |
- 建構函式會建立
CustomSocket
實體socket
,然後將主機名稱和埠號 80 做為引數傳遞給localhost
。 由於CustomSocket
會擴充 Socket,所以呼叫super()
會呼叫 Socket 的建構函式。 - 然後,此範例會呼叫
configureListeners()
方法,此方法會為 Socket 事件加入偵聽程式。 - 最後,會使用
localhost
做為主機名稱並將 80 做為連接埠號,來呼叫通訊端connect()
方法。
注意:如果要執行這個範例,執行的伺服器必須和正在偵聽埠號 80 的 SWF 位於相同的網域 (這個範例中的 localhost
)。
package { import flash.display.Sprite; public class SocketExample extends Sprite { private var socket:CustomSocket; public function SocketExample() { socket = new CustomSocket("localhost", 80); } } } import flash.errors.*; import flash.events.*; import flash.net.Socket; class CustomSocket extends Socket { private var response:String; public function CustomSocket(host:String = null, port:uint = 0) { super(); configureListeners(); if (host && port) { super.connect(host, port); } } private function configureListeners():void { addEventListener(Event.CLOSE, closeHandler); addEventListener(Event.CONNECT, connectHandler); addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); addEventListener(ProgressEvent.SOCKET_DATA, socketDataHandler); } private function writeln(str:String):void { str += "\n"; try { writeUTFBytes(str); } catch(e:IOError) { trace(e); } } private function sendRequest():void { trace("sendRequest"); response = ""; writeln("GET /"); flush(); } private function readResponse():void { var str:String = readUTFBytes(bytesAvailable); response += str; } private function closeHandler(event:Event):void { trace("closeHandler: " + event); trace(response.toString()); } private function connectHandler(event:Event):void { trace("connectHandler: " + event); sendRequest(); } private function ioErrorHandler(event:IOErrorEvent):void { trace("ioErrorHandler: " + event); } private function securityErrorHandler(event:SecurityErrorEvent):void { trace("securityErrorHandler: " + event); } private function socketDataHandler(event:ProgressEvent):void { trace("socketDataHandler: " + event); readResponse(); } }
Tue Jun 12 2018, 03:47 PM Z