读取数据我有一个闪存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