事件 SOCKET_DATA 未收到 AS3 中的所有消息

发布于 2024-12-09 20:21:29 字数 366 浏览 0 评论 0原文

我的 AS3 客户端程序在发送大量消息时没有收到发送给它的所有数据。我确实知道不是我的服务器导致了此问题,因为所有消息均已正确接收和发送。我的 as3 客户端只是没有收到所有发送的数据。

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

你们有人知道解决办法吗?

My AS3 client program does not receive all the data that was sent to it when sending a lot of messages. I do know its not my server causing this problem because all the messages are received and send correctly. My as3 client just does not receive all the data send.

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

Does any of you know a solution?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

忆悲凉 2024-12-16 20:21:29

今天下午我也遇到了同样的问题。最后我想出了一个解决方案:
事实上,您必须像这样逐字节读取消息:

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

我希望这会对您有所帮助:)

I had the same issue this afternoon. Finally i came with a solution:
In fact, you have to read the message byte by byte like so:

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

I hope this will help you :)

另类 2024-12-16 20:21:29

问题解决了,我只需打开路由器上的端口即可。

Problem solved, I just had to open the port on my router.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文