我正在尝试与基于C#的socket服务器交互闪存AS3文件。服务器被设计为在给定的时间给出两个响应,在第一个和第二个响应之间可以有不同的延迟。然而,我发现的是第二个响应与下一个响应一起到达。
var xmlsock:XMLSocket = new XMLSocket();
xmlsock.connect("127.0.0.1", 9231);
xmlsock.addEventListener(DataEvent.DATA, onDataHandler);
function onDataHandler(event:DataEvent):void {
trace("[" + event.type + "] " + event.data);
}当我使用trace检查输出时,我发现下面我用虚线分隔了每个响应。response test和test2应该出现在单个请求中,但是它们出现在两个不同的响应中。
当前结果
[data]
[data] test
--------------------------------------------------
[data] test2
[data] test
--------------------------------------------------
[data] test2
[data] test
--------------------------------------------------
[data] test2
[data] test
--------------------------------------------------下面是我所期望的结果
[data] test
[data] test2
--------------------------------------------------
[data] test
[data] test2
--------------------------------------------------
[data] test
[data] test2
--------------------------------------------------任何了解XMLSocket并解决问题的洞察力都会很棒。
发布于 2013-04-17 14:39:54
我使用了Socket类来使其正常工作。感谢所有人的帮助...
var socket:Socket = new Socket("localhost", 2553);
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);
var data:String = "";
while(socket.bytesAvailable){
data += socket.readUTFBytes(1);
}
trace("data "+ data);
}https://stackoverflow.com/questions/15903568
复制相似问题