我最近正在为3名玩家开发多人客户/服务器输入游戏。现在我要派3xboolean,double,2xint和long。我想问一下,是否有可能以某种方式打包数据并只发送数据包。
发布于 2016-04-28 09:11:14
我不会将实际的对象写入网络,而是将其序列化为稳定的格式(例如JSON)并发送该格式。接收端将从套接字中获取JSON并解码到一个对象。下面是一个您需要的快速示例(我使用葛森进行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;
}
}发布于 2016-04-28 08:47:09
看看这个例子。您必须创建一个具有以下字段的类
3×布尔,双,2xint和长
并使用这里提供的传输方式--> http://docs.oracle.com/javase/tutorial/networking/sockets/clientServer.html
https://stackoverflow.com/questions/36909291
复制相似问题