我正在尝试将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);
}
当我使用跟踪检查输出时,我在下面找到了我用虚线分隔每个响应。响应测试和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和解决问题的任何见解都会很棒。
答案 0 :(得分: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);
}