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 をすべて解析します。それが最初のメッセージを受信した場合は、接続が確立されて以降に受信した XML をすべて解析します。Socket オブジェクトをラップし、メッセージを内部バッファーに読み取り、必要に応じてイベントを発生させる必要があります。

于 2013-11-23T13:16:37.640 に答える