0

我正在尝试将 Flash AS3 文件与基于 C# 的套接字服务器进行交互。服务器设计为在给定时间给出两个响应,第一个响应和第二个响应之间可能存在不同的延迟。但是我发现第二个响应与下一个响应一起到达。

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);
}

当我使用跟踪检查输出时,我发现下面我用虚线分隔了每个响应。响应 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 和解决问题的见解都会很棒。

4

1 回答 1

0

我使用了 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);   
}
于 2013-04-17T06:39:53.833 回答