讀取數據我有一個閃存AS3文件與套接字服務器交互,服務器以純文本形式發送數據。我無法讀取使用Socket類從服務器發送的數據。下面是我在Flash中使用的代碼。無法從套接字
var socket:Socket = new Socket("localhost", 9231);
socket.addEventListener(Event.CONNECT, socketConnectHandler, false, 0, true);
socket.addEventListener(ProgressEvent.SOCKET_DATA, socketDataHandler, false, 0, true);
function socketConnectHandler(event:Event):void{
trace("Connection has been established ");
}
function socketDataHandler(event:ProgressEvent):void{
var stream:ByteArray = new ByteArray();
socket.writeBytes(stream, 0, 0);
trace(stream.readUTF());
trace(socket.readUTF());
}
我得到以下錯誤,而我嘗試閱讀的ByteArray和插座數據被髮送。
Error: Error #2030: End of file was encountered.
at flash.net::Socket/readUTF()
at socket_test_fla::MainTimeline/socketDataHandler()
我嘗試了各種組合,以使它無法成功地工作。任何幫助我理解問題並找到解決辦法的線索都會令您感激不盡。
更新:
我修改由@t給出代碼
var stream:ByteArray = new ByteArray();
socket.writeBytes(stream, 0, 0);
var data:String = "";
while(socket.bytesAvailable > 0) {
data += socket.readByte();
}
trace("data "+ data);
我得到的痕跡爲 「0124661171161161111109579756184114117101124-1」 或類似的一串數字。任何想法將這些代碼轉換爲相應的字符?
'socket.writeBytes(stream,0,0);'線沒用,你不用發送任何東西。也許你沒有從服務器獲取任何數據,因爲你首先沒有發送任何數據。 (這取決於它是什麼樣的服務器)。 – SSpoke 2014-03-12 21:04:11