【发布时间】:2013-11-27 19:49:06
【问题描述】:
我正在处理 AIR 和 Sockets,使用一个服务器应用程序和另一个作为客户端。
服务器向客户端发送一个对象:
clientSocket.writeObject(myObject);
客户端有一个监听器,像这样:
socket.addEventListener(ProgressEvent.SOCKET_DATA, socketData);
我如何知道传入对象的大小?我需要监控这个过程,因为当传输完成后我需要做另一个过程。
我试过了,但没有用:
var total:int = 0;
private function socketData(e:ProgressEvent) :void {
if (total == 0) {
total = socket.readInt();
}
if (socket.bytesAvailable >= total) {
trace('COMPLETE');
total = 0;
} else {
trace('progress:' + socket.bytesAvailable + ' | total: ' + total);
}
}
这篇文章不适用于我的具体情况:AS3 / AIR readObject() from socket - How do you check all data has been received?
【问题讨论】:
-
写完对象后你flush()吗?
-
是的,我执行flush(),客户端正确接收到对象。我的问题是我无法控制传输过程的进度。
标签: actionscript-3 flash sockets air