如何在Java中的服务器和客户端之间发送int []?

时间:2014-07-04 17:22:08

标签: java

我一直在尝试找到一种从服务器向客户端发送int []的方法。我有一个基本的多人游戏,可以通过局域网工作。除了Java本身强加的限制之外,目前没有玩家限制。每个玩家都有一个他们可以使用WASD控制的方格。在服务器中,我目前使用byte []来存储所有玩家位置。这个问题是这些职位不能超过128或-127。但是,DataOutputStream可以写byte [] s但不能写int [] s。我已经看到有一个writeInt()函数,但是这只能在一个变量中发送一个数字而不是一堆数字。我担心使用它,因为我不希望客户端以错误的顺序接收整数并弄乱它们。所以真正的问题是:在客户端和服务器之间发送一堆整数的最佳方法是什么?我还想尽快保持速度。如果你需要看,我可以发布我当前的代码。

顺便说一下这是我的第一篇文章,所以如果我做错了,请告诉我。

1 个答案:

答案 0 :(得分:0)

你需要:

  1. 获取与客户端的连接。现在,这通常由java.nio包中的SocketChannel类完成。

  2. 如果hou有一个int数组,请使用IntBuffer类并将int []包装到IntBuffer实例中。

  3. 将您的IntBuffer对象作为SocketChannel的write()方法的参数。不要忘记先打开连接。

  4. 关闭套接字(从Java 7开始,有一个try-with块可以自动关闭资源)。