我正试图通过套接字将数组集合中的一系列字符串推送到客户端应用程序。但是,有时候,弦不会一根接一根地被推出。例如,客户端应用程序将按如下方式接收数据:array[0]、array[1]、array[3]、array[5]。。。。
正如您所看到的,一些字符串被跳过了。以下是我的代码:
var i:int;
for (i = 0; i < ac.length; i++){
socket.writeUTF(ac.getItemAt(i).toString());
socket.flush();
}
当我跟踪可用的字节时,结果是:
[string 1]
bytes.available = 851
[string 3]
bytes.available = 1406
.
.
.
根据一些人的说法,这是由于flush()
从未被足够快地调用以用于后续数据。我对此不确定。请帮忙。
将字符串及其索引一起发送,这样您就可以按照它们的原始顺序将它们加入到远程进程中。
类似的东西:
for (i = 0; i < ac.length; i++){
socket.writeUTF("[" + i + "]:" + ac.getItemAt(i).toString());
socket.flush();
}