亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > WEB開發 > 正文

24.3.接收數據

2024-04-27 13:47:00
字體:
來源:轉載
供稿:網友
問題
我想接收socket服務器發送來的數據

解決辦法
對于Socket實例可通過ProgressEvent.SOCKET_DATA事件處理函數中讀取數據,可用readByte( )或readInt( )方法

對于XMLSocket實例可通data事件處理函數中讀取XML數據

討論
從socket中接收數據的方法取決于你使用socket類型,Socket和XMLSocket都可以接收數據,但是兩者實現方法有些不同,讓我們先看看Socket類是如何做的。

正如前面所講到的,Flash提供的socket通信方式是異步通信,也就是說僅僅創建socket連接并試圖讀取數據這是不可能的,read方法讀取數據時并不會等待數據傳輸過來而立即返回,如果數據還沒準備好而去讀取數據會導致異常。

當數據準備好了時,socketData事件就會觸發,通過注冊該事件處理函數,當數據發送過來時就會觸發,因此可通過該處理函數讀取數據。

為了讀取服務器發送來的數據,Socket 類提供了一系列read 方法來讀取不同類型的數據,例如通過readByte( )方法讀取一個字節,readUnsignedInt( )方法讀取一個無符號整數,具體看下面的表格:
Table 24-1. Socket read methods for various datatypes
方法:返回類型描述 描述字節數 字節數
readBoolean():Boolean 讀取布爾型數據 1
readByte():int 讀取一個字節數據 1
readDouble():Number 讀取IEEE 754雙精度浮點數 8
readFloat():Number 讀取IEEE 754單精度浮點數 4
readInt():in 讀取32位整數 4
readObject():* 讀取AMF格式對象 N
readShort():int 讀取16位整數 2
readUnsignedByte():uint 讀取無符號字節 1
readUnsignedInt():uint 讀取無符號32位整數 4
readUnsignedShort():uint 讀取無符號16位整數 2
readUTF():String 讀取UTF-8字符串 n

還有兩個方法沒有在上面的表格里,它們是readBytes( )和readUTFBytes( ),readBytes( )方法沒有
返回值,它接受三個參數:
bytes
一個flash.util.ByteArray 實例填充讀取的數據
offset
一個uint值指定讀取數據的偏移量,默認為0
length
一個uint值表示讀取的字節數,默認為0,表示所有的數據
readUTFBytes( )方法只接受一個參數,表示讀取的UTF-8 字節數,返回一個字符串。
下面的例子代碼連接一個socket服務器并讀取和顯示服務器發送的數據:
+展開
-ActionScript
package {
import flash.display.Sprite;
import flash.events.ProgressEvent;
import flash.net.Socket;
public class SocketExample extends Sprite {
private var socket:Socket;
public function SocketExample( ) {
socket = new Socket( );
// Listen for when data is received from the socket server
socket.addEventListener( ProgressEvent.SOCKET_DATA, onSocketData );
// Connect to the server
socket.connect( "localhost", 2900 );
}
private function onSocketData( event:ProgressEvent ):void {
trace( "Socket received " + socket.bytesAvailable + " byte(s) of data:" );
// Loop over all of the received data, and only read a byte if there
// is one available
while ( socket.bytesAvailable ) {
// Read a byte from the socket and display it
var data:int = socket.readByte( );
trace( data );
}
}
}
}

上面的例子中,如果socket服務器發送"Hello"字符串,則輸出:
//Socket接收5字節的數據:
72
101
108
108
111
Socket對象接收的數據都是ASCII編碼的文本,我們可以用readUTFBytes( )方法重新構造字符串,readUTFBytes( )方法需要知道有多少個字節需要轉換,用bytesAvailable屬性指定字節數:
+展開
-ActionScript
var string:String = socket.readUTFBytes(socket.bytesAvailable);

XMLSocket類和Socket類基本類似,兩者都要注冊監聽器檢測數據是否接收完畢,但是兩者讀取數據的方式是不同的。

當數據準備好時XMLSocket 實例發出data 事件,事件類型為flash.events.DataEvent.DATA ,它其中的data屬性包含接收過來的數據。

從服務器返回的數據都是原始的數據,如果你希望以XML進行處理則需先把數據轉換為XML實例。

下面的代碼例子用XMLSocket連接本地服務器,端口為2900,連接成功后,發送<test>消息給服務器, onData 事件處理函數處理服務器返回的數據, 返回數據為<response><test success='true'/></response>,注意到該事件的data屬性的內容只是字符串數據,需用XML構造器轉換位XML實例,最后通過E4X 語法輸出XML:
+展開
-ActionScript
package {
import flash.display.Sprite;
import flash.events.Event;
import flash.events.DataEvent;
import flash.net.XMLSocket;
public class SocketExample extends Sprite {
private var xmlSocket:XMLSocket;
public function SocketExample( ) {
xmlSocket = new XMLSocket( );
// Connect listener to send a message to the server
// after we make a successful connection
xmlSocket.addEventListener( Event.CONNECT, onConnect );
// Listen for when data is received from the socket server
xmlSocket.addEventListener( DataEvent.DATA, onData );
// Connect to the server
xmlSocket.connect( "localhost", 2900 );
}
private function onConnect( event:Event ):void {
xmlSocket.send( "<test/>" );
}
private function onData( event:DataEvent ):void {
// The raw string returned from the server.
// It might look something like this:
// <response><test success='true'/></response>
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 );
}
}
}
上一篇:24.0.簡介

下一篇:24.2.發送數據

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美高清一级大片| 亚州成人av在线| xvideos亚洲人网站| 亚洲成人aaa| 91精品久久久久久久久久久久久| 亚洲一区亚洲二区| 97成人精品视频在线观看| 中文字幕精品一区久久久久| 欧美性猛交xxxxx免费看| 久国内精品在线| 色婷婷久久一区二区| 亚洲毛片在线免费观看| 91精品视频网站| 国产精品成人一区二区三区吃奶| 奇米4444一区二区三区| 中日韩美女免费视频网址在线观看| 国产欧美精品xxxx另类| 欧美激情videoshd| 日韩麻豆第一页| 国产成人+综合亚洲+天堂| 国产精品入口免费视频一| 欧美电影免费观看高清| 久久久伊人欧美| 国产精品久久久久久av下载红粉| 中日韩美女免费视频网址在线观看| 久久久精品2019中文字幕神马| 亚洲老头老太hd| 国自产精品手机在线观看视频| 国产欧美日韩精品丝袜高跟鞋| 这里只有精品视频| 国产精品国产三级国产aⅴ浪潮| 亚洲а∨天堂久久精品喷水| 国产美女精品免费电影| 国产在线播放91| 97av在线影院| 中文字幕9999| 神马久久久久久| 久久精品99久久久香蕉| 97国产精品视频人人做人人爱| 18性欧美xxxⅹ性满足| 亚洲欧美国内爽妇网| 国产精品青青在线观看爽香蕉| 色偷偷av亚洲男人的天堂| 欧美日韩国产中文字幕| 国产精品美女午夜av| 国产精品1234| 在线丨暗呦小u女国产精品| 国产精品久久久久久久天堂| 亚洲国产精品久久久| 日韩欧美亚洲范冰冰与中字| 成人精品视频99在线观看免费| 国产精品香蕉在线观看| 亚洲精品98久久久久久中文字幕| 欧美精品在线观看| 中文字幕日韩av电影| 中日韩午夜理伦电影免费| 欧美最顶级丰满的aⅴ艳星| 久久6精品影院| 亚洲激情国产精品| 久久69精品久久久久久国产越南| 亚洲精品视频中文字幕| 久久精品成人一区二区三区| 国产小视频国产精品| 精品动漫一区二区三区| 久精品免费视频| 亚洲国产美女精品久久久久∴| 92福利视频午夜1000合集在线观看| 亚洲韩国欧洲国产日产av| 国产亚洲视频在线观看| 日韩精品久久久久久福利| 亚洲深夜福利在线| 91高清在线免费观看| 国模精品一区二区三区色天香| 麻豆乱码国产一区二区三区| 亚洲精品一区二区在线| 欧美一级高清免费| 欧美老女人性视频| 日韩美女免费观看| 国产一区二区久久精品| 欧美影院久久久| 国产日韩欧美在线| 久久九九免费视频| 亚洲va国产va天堂va久久| 欧美黑人巨大xxx极品| 欧美大片网站在线观看| 欧美极品少妇xxxxx| 亚洲精品电影在线| 成人国产精品久久久久久亚洲| 亚洲黄色成人网| 国产精品亚发布| 久久精品中文字幕免费mv| 欧美激情在线狂野欧美精品| 77777亚洲午夜久久多人| 亚洲xxx自由成熟| 国产亚洲精品久久久优势| 亚洲一二在线观看| 欧美激情一级精品国产| 色综久久综合桃花网| 色小说视频一区| 日韩激情在线视频| 国产一区二区日韩精品欧美精品| 国产精品啪视频| 亚洲精品美女网站| 欧美成人免费在线观看| 欧美日韩久久久久| 亚洲一区二区三区四区在线播放| 欧美猛交免费看| 日本亚洲欧美三级| 国产精品jvid在线观看蜜臀| 黑丝美女久久久| 国产精品夜间视频香蕉| 97色在线播放视频| 亚洲人成绝费网站色www| 欧美日韩在线免费| 久久久精品久久| 在线精品视频视频中文字幕| 亚洲视频在线观看网站| 欧美日韩国产999| 国产精品久久不能| 亚洲精品资源美女情侣酒店| www.久久色.com| 亚洲成人av在线| 亚洲一区二区三区乱码aⅴ| 亚洲精选中文字幕| 欧美大片欧美激情性色a∨久久| 97在线精品视频| 亚洲国产日韩欧美在线图片| 亚洲毛片在线观看| 欧美成人免费va影院高清| 亚洲国产成人在线播放| 中文字幕亚洲一区二区三区| 日本精品一区二区三区在线播放视频| 亚洲男子天堂网| 成人在线一区二区| 亚洲一区av在线播放| 亚洲一区二区三区视频| 国产精品露脸av在线| 美女扒开尿口让男人操亚洲视频网站| 国产精品18久久久久久麻辣| 欧美人与性动交a欧美精品| 色偷偷噜噜噜亚洲男人的天堂| 久久综合伊人77777蜜臀| 中文字幕日韩精品在线观看| 最新69国产成人精品视频免费| 午夜精品www| 精品美女久久久久久免费| 欧美在线视频导航| 国产日产久久高清欧美一区| 欧美性做爰毛片| 欧美福利在线观看| 久久99视频精品| 亚洲人成电影网站色…| 成人有码在线视频| 欧美日韩中文在线观看| 欧美在线中文字幕| 色爱精品视频一区| 91免费国产视频| 色婷婷**av毛片一区| 亚洲精品suv精品一区二区| 国内精品一区二区三区四区| 久久久噜噜噜久久| 在线日韩中文字幕| 日韩精品一区二区视频| 国产精品欧美亚洲777777|