0

我正在编写一个应用程序(多人游戏),其中需要通过服务器将对象从应用程序的一个实例传递到另一个(并且非常快速)。

我正在使用ObjectOutputStreamsObjectInputStreams通过套接字获得来执行此操作。

但是,传递的对象的状态会不断更新,这意味着典型的writeObject()方法不会成功(它只写入一次对象,然后在随后调用它时传递对它的引用,这意味着它的实例的值变量从未真正更新过)。

为了“解决”这个问题,我ObjectOutputStream.reset()在每次调用 之后都调用了该方法writeObject(),这确实解决了更新对象状态的问题;但是,它运行得太慢了,我认为这是每次“刷新”时对象都被完整传递的结果。

那么我的问题是,如何更新通过网络传递的对象的状态,而不必完全重写对象?(我假设这是我加快速度的方法;如果我错了,或者如果存在其他方法,请分享)提前感谢您的任何建议!

此外,关于传递的对象的大小:它不是太大...几个布尔变量、几个双精度数组和一些其他次要变量(没有长度为 1000 的列表,每个列表都包含另一个列表)。

4

1 回答 1

1
  1. BufferedOutputStream在 theObjectOutputStream和套接字之间使用 a 。
  2. BufferedInputStream在 theObjectInputStream和套接字之间使用 a 。
  3. flush()在每个writeObject()或之后调用writeUnshared().
于 2012-06-18T04:07:49.933 回答