2016-04-28 13 views
0

私は最近、3人のプレイヤーのためのマルチプレイヤークライアント/サーバータイピングゲームに取り組んでいます。今私は3xbooleandouble2xintlongを送っています。私は何とかデータをパックし、データパケットだけを送ることが可能かどうか尋ねたい。Javaネットワーク転送大量データ

+0

必要なものの簡単な例です。 – Berger

答えて

0

代わりに実際のオブジェクトを書きます私はネットワークを安定したフォーマット(例えばJSON)にシリアル化して送信することを推奨します。受信側はJSONをソケットから取得し、オブジェクトにデコードします。ここでは、あなたがオブジェクトの内部でこれらをラップし、オブジェクト(入力/出力)ストリームを使用することができます(私は、JSONの解析のためにGSONを使用)

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

} 
関連する問題