0

正如我在 XMLSocket 中看到的那样,数据可以完全读取到最后,另一方面,Socket 类按部分读取数据,所以长字符串将按部分连接,我想知道是否可以使用 Socket 类并仍然读取直到结束包的完整数据

private function readResponse():void {
    var str:String = readUTFBytes(bytesAvailable);
    response += str;
    trace2(response);
}
private function socketDataHandler(event:ProgressEvent):void {
    trace2("socketDataHandler: " + event);
    readResponse();
}

所以正如我在文档中看到的,唯一的数据处理程序是 ProgressEvent,但是如何处理数据以获取完整的字符串,而不是部分?,我不想使用 XMLSocket,有没有办法?

4

1 回答 1

0

XMLSocket 读取内部缓冲区中的数据,当接收到终止空字节时,它会解析自前一个零字节以来接收到的所有 XML,或者,如果这是接收到的第一条消息,则自建立连接以来。您需要包装 Socket 对象,将消息读取到内部缓冲区并在需要时触发事件。

于 2013-11-23T13:16:37.640 回答