Java网络传输大量数据

时间:2016-04-28 08:31:12

标签: java networking

我最近正在为3名玩家开发多人客户/服务器打字游戏。现在我发送3xbooleandouble2xintlong。我想询问是否有可能以某种方式打包数据并仅发送数据包。

2 个答案:

答案 0 :(得分:0)

不是将实际对象写入网络,而是建议将其序列化为稳定格式(例如JSON)并发送它。接收端将从套接字获取JSON并解码为对象。以下是您需要的快速示例(我使用GSON进行Json解析)

public static void main(String[] args) {
    Gson gson = new Gson();

    //Sender side
    Message message = new Message();
    message.setA(true);
    message.setD("Hello World");

    String messageAsJson = gson.toJson(message);
    //write messageAsJson to socket
    System.out.println(messageAsJson);



    //Receiver side, reads line from socket and decodes
    Message decodedMessage = gson.fromJson(messageAsJson, Message.class);
    System.out.println(decodedMessage.getA());
    System.out.println(decodedMessage.getD());
}


public static class Message {
    private Boolean a;
    private String d;
    public Boolean getA() {
        return a;
    }
    public void setA(Boolean a) {
        this.a = a;
    }
    public String getD() {
        return d;
    }
    public void setD(String d) {
        this.d = d;
    }

}

答案 1 :(得分:-1)

查看此示例。您必须创建一个包含以下字段的类

  

3xboolean,double,2xint和long

并使用此处提供的传输方法 - > http://docs.oracle.com/javase/tutorial/networking/sockets/clientServer.html