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

时间:2012-06-25 05:42:44

标签: java networking

好的,我已经在这几天工作了,我在任何地方都找不到任何信息。我做了一个非常好的简单游戏,但我想添加双人游戏功能。我已经通过LAN与另一台计算机建立了连接,但我不知道如何发送数据。我理解写入ObjectOutputStream的,但我如何让对方解释呢?我是否单独发送每个变量?截至目前,我正试图为敌人,球员位置,得分和生命发送阵列。如何以客户理解的方式发送和接收它?谢谢你的帮助,如果我问的问题不明确,我很抱歉。我不确定如何表达它。

2 个答案:

答案 0 :(得分:3)

您需要serialization。这意味着将包含信息的Java类转换为一堆字节。然后可以将这些字节传输到您的客户端,在那里它将被反序列化以返回保存您想要的数据的原始Java类。

在Java中,大部分内容都是自动完成的。您可以先查看this

答案 1 :(得分:2)

这取决于。我认为发送文本数据流是一个好主意,这将使您能够更好地调试应用程序,并使其他语言编写的其他应用程序可以与您自己的应用程序进行交互。

您可以查看XStream(教程here)。这样您就可以轻松地将数据转换为XML格式并发送。

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

编辑:根据您对其他问题的评论,您可以这样做:

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

    //Constructors, Getters and Setters.
}

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