2016-04-28 80 views
0

我最近正在爲3名玩家開發多人客戶/服務器打字遊戲。現在我發送3xboolean,double,2xintlong。我想問問是否有可能以某種方式打包數據併發送數據包。Java網絡傳輸大量數據

+0

,你可以換一個,這些對象中,並使用對象(輸入/輸出)流的你所需要的一個簡單的例子。 – Berger

回答

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; 
    } 

}