Java:试图通过网络发送大量信息

Java:试图通过网络发送大量信息,java,networking,Java,Networking,好吧,我已经做了好几天了,但我在任何地方都找不到任何信息。我做了一个简单的游戏,效果很好,但我想添加两人功能。我已经通过局域网与另一台计算机建立了连接,但我不知道如何发送数据。我理解写ObjectOutputStream,但我如何让另一方来解释它呢?我是否分别发送每个变量?现在,我正在尝试发送一个敌人、玩家位置、分数和生命的阵列。我如何以客户能够理解的方式发送和接收信息?谢谢你的帮助,如果我问的不清楚,我很抱歉。我不知道该怎么表达。你需要。这意味着将包含信息的Java类转换为一组字节。然后,这些

好吧,我已经做了好几天了,但我在任何地方都找不到任何信息。我做了一个简单的游戏,效果很好,但我想添加两人功能。我已经通过局域网与另一台计算机建立了连接,但我不知道如何发送数据。我理解写ObjectOutputStream,但我如何让另一方来解释它呢?我是否分别发送每个变量?现在,我正在尝试发送一个敌人、玩家位置、分数和生命的阵列。我如何以客户能够理解的方式发送和接收信息?谢谢你的帮助,如果我问的不清楚,我很抱歉。我不知道该怎么表达。

你需要。这意味着将包含信息的Java类转换为一组字节。然后,这些字节可以被传输到您的客户机,在那里它将被反序列化,以获取包含您想要的数据的原始Java类


在Java中,大部分操作都是自动完成的。你可以先看看。

这要看情况而定。我认为只发送文本数据流是一个好主意,这将允许您更好地调试您的应用程序,并使使用其他语言编写的其他应用程序能够与您自己的应用程序交互

你可以看一看(教程)。这将允许您轻松地将数据转换为XML格式并发送

为了澄清,您最终还是会以字节的形式发送数据。但在我的建议中,字节将表示字符串,而不是序列化的Java对象

编辑:根据您对另一个问题的评论,您可以这样做:

public class GameDataProtocol
{
    private Enemy[] enemies;
    private Point position;
    private int score;
    private int liveCount;

    //Constructors, Getters and Setters.
}

您可以用您的信息填充上面的类,用XML编码并将其发送给客户机。客户端将对其进行解码并相应地更新数据。

因此,不是单独发送变量,而是说我必须发送整个类?我想这是合理的。但是,它的速度是否足够快,以防止游戏落后太多?从架构的角度来看,这样做更有意义。它可能足够快,因为在类中包装这些数据不会有太多开销。如果你发现它太慢了,你可以在以后进行优化,但这是目前最简单的事情。那么我是否可以创建一个类来存储在两者之间传递的所有数据?这样它就可以得到更新,传递,使用,更新,传递回来?非常感谢。我试试看。出于某种原因,几乎没有关于Java网络的好信息。“如果我有这个名声,我会投票给你的。”末底改没问题。祝你好运我会把它放进书签,稍后再看。现在,我将以最快、最省力的方式完成这个项目。然而,这可能对未来的项目有好处。