1

私の AS3 クライアント プログラムは、大量のメッセージを送信するときに、送信されたすべてのデータを受信しません。すべてのメッセージが正しく受信および送信されるため、この問題を引き起こしているのは私のサーバーではないことはわかっています。私の as3 クライアントは、送信されたすべてのデータを受信しません。

    private function socketData(event:ProgressEvent):void {
       while(this.socket.bytesAvailable}
          var str:String = this.socket.readUTFBytes(this.socket.bytesAvailable);
          trace(str);
       }
    }

どなたか解決策をご存知ですか?

4

2 に答える 2

2

今日の午後、同じ問題が発生しました。最後に、解決策がありました。実際には、次のようにメッセージをバイトごとに読み取る必要があります。

private function socketData (evt:ProgressEvent):void {
    var msg:String = ""; // create a buffer
    while (socket.bytesAvailable) { // while there is byte to read
        var byte:int = socket.readByte();
        if (byte==0) { // if we read the end byte
            trace(msg); // treat your message
            msg = ""; // free the buffer
        } else {
            msg += String.fromCharCode(byte); // else, we add the byte to our buffer
        }
    }
}

これがお役に立てば幸いです:)

于 2011-11-01T14:10:10.777 に答える
1

問題は解決しました。ルーターのポートを開くだけで済みました。

于 2012-08-11T20:20:28.203 に答える