如何将整数值转换为字节数组,然后通过字节流将它们发送到将字节数组转换回整数的客户端程序?
我的程序是一个乒乓球游戏。一旦运行,它就会创建一个服务器,客户端现在使用对象流通过 Internet 连接到该服务器。一切运行良好,但似乎效率不高。我的意思是球在试图通过更新循环保持同步时来回结结巴巴。我可能对它进行了松散的编程,但这是我能想到的最好的。我希望对这种事情的工作原理有更多了解的人可以帮助我弄清楚一些事情。
我的问题直截了当。我需要知道一种更好的方法来更有效地通过互联网发送球位和球员位置。目前需要的时间太长了。虽然,我可能会以错误的方式更新它。
流的构造方式:
oostream = new ObjectOutputStream(new BufferedOutputStream(socket.getOutputStream()));
oostream.flush();
oistream = new ObjectInputStream(new BufferedInputStream(socket.getInputStream()));
这是播放器 2 的更新循环:
IntData id = new IntData();
while (running) {
id.ballx = ballx;
id.bally = bally;
id.player2Y = player2Y;
oostream.writeObject(id);
oostream.flush();
Thread.sleep(updaterate);
id = (IntData) oistream.readObject();
player1Y = id.player1Y;
ballx = id.ballx;
bally = id.bally;
}
玩家 1 是服务器主机。这是玩家 1 的更新循环:
IntData id = new IntData();
while (running) {
id = (IntData) oistream.readObject();
player2Y = id.player2Y;
ballx = id.ballx;
bally = id.bally;
Thread.sleep(updaterate);
id.ballx = ballx;
id.bally = bally;
id.player1Y = player1Y;
oostream.writeObject(id);
oostream.flush();
}