我读过一些让我不确定并寻找替代方法的地方。是否打电话reset()
太频繁会导致网络紧张,还是不必要的?
我正在使用 TCP 通过 ObjectOutputStream 发送对象。对象值在再次写入之前会发生更改。现在相同的对象但包含不同的值,没有reset()
它重新发送之前发送的缓存对象的引用,该引用被读取为没有更改。我不确定是否使用reset()
由于这种压力,这是一个好主意。我应该寻找另一种方式吗?
示例代码如下:
Socket socket = new Socket(ip, port);
BufferedOutputStream bos = new BufferedOutputStream(socket.getOutputStream());
ObjectOutputStream oos = new ObjectOutputStream(bos);
while(true){
oos.writeObject(object);
oos.flush();
oos.reset();
object.x++;
}
过于频繁地调用reset()是否会导致网络压力
与什么相比?如果需要重置,那是因为需要用新值传输之前传输的对象。如果您不需要这样做,请不要调用它。如果您确实需要这样做,网络开销与功能要求无关。
还是不必要的?
呃?请翻译一下?
我正在使用 TCP 通过 ObjectOutputStream 发送对象。对象值在再次写入之前发生更改
所以你需要调用reset()或使用writeUnshared()。
现在相同的对象但包含不同的值,如果没有reset(),它会重新发送之前发送的缓存对象的引用,该引用被读取为没有更改。
正确的。所以你不能那样做。
由于这种压力,我不确定使用 Reset() 是否是一个好主意。
什么菌株?唯一的“压力”是您正在传输对象的新值,并且您的功能要求指示您必须这样做。所以你别无选择。
我应该寻找另一种方式吗?
没有其他办法了。您要么必须传输对象的新值,要么不传输。如果这样做,所有解决方案本质上都是等效的。如果你不这样做,就不要这样做。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)