首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java网络传输大量数据

Java网络传输大量数据
EN

Stack Overflow用户
提问于 2016-04-28 08:31:11
回答 2查看 84关注 0票数 0

我最近正在为3名玩家开发多人客户/服务器输入游戏。现在我要派3xbooleandouble2xintlong。我想问一下,是否有可能以某种方式打包数据并只发送数据包。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-28 09:11:14

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

代码语言:javascript
复制
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;
    }

}
票数 0
EN

Stack Overflow用户

发布于 2016-04-28 08:47:09

看看这个例子。您必须创建一个具有以下字段的类

3×布尔,双,2xint和长

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

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36909291

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档