我最近正在爲3名玩家開發多人客戶/服務器打字遊戲。現在我發送3xboolean
,double
,2xint
和long
。我想問問是否有可能以某種方式打包數據併發送數據包。Java網絡傳輸大量數據
0
A
回答
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
結帳這個例子。你必須創建一個類具有以下字段
3xboolean,雙,2xint和長
,並使用運輸途徑此處提供 - > http://docs.oracle.com/javase/tutorial/networking/sockets/clientServer.html
,你可以換一個,這些對象中,並使用對象(輸入/輸出)流的你所需要的一個簡單的例子。 – Berger