我的AS3客户端程序在收到大量邮件时没有收到发送给它的所有数据。我知道它不是我的服务器导致此问题,因为所有消息都被接收并正确发送。我的as3客户端只是没有收到所有数据发送。
private function socketData(event:ProgressEvent):void {
while(this.socket.bytesAvailable}
var str:String = this.socket.readUTFBytes(this.socket.bytesAvailable);
trace(str);
}
}
你们有没有人知道解决方案吗?
答案 0 :(得分: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
}
}
}
我希望这会对你有所帮助:)。
答案 1 :(得分:1)
问题解决了,我只需打开路由器上的端口。