2

この質問をすることで達成したいのは、2次元配列を別のコンピューターと送受信する方法を学ぶことです。

コンテキストは、2-Dアレイが私のゲームのマップであり、ゲームを開始するときに、サーバーまたはクライアント(クライアントの場合はサーバーIPを指定)になるオプションが必要であり、サーバーはクライアント(そのうちの1人は別のIPを持つ別の人)が接続するときの2Dアレイ。

これがすべて理にかなっていることを願っています、私はこれを前に与えました、しかし私はそれを動かすことができませんでした、私はデータグラムパケットで試しました、しかし私はセグメントですべての2D配列を送る方法を理解できませんでしたそしてそれを元に戻します2D配列に。

どのタイプのストリームまたは一般的なネットワークオブジェクトを使用する必要がありますか?そして、2Dアレイを送信することは可能でしょうか?設定に役立つ例を教えてください。

また、後でプレーヤーの座標とマップの変更を送信するので、Networkingオブジェクトもそれで機能する場合は、それはプラスです。

4

2 に答える 2

2

これは、オブジェクトタイプがSerializableのインスタンスである場合、任意のプリミティブタイプの配列とオブジェクト配列で機能します。

サーバ

    ServerSocket ss = new ServerSocket(port);
    Socket s = ss.accept();
    ObjectInputStream is = new ObjectInputStream(s.getInputStream());
    byte[][] array = (byte[][])is.readObject();

クライアント

    byte[][] array = new byte[10][10];
    Socket s = new Socket("host", port);
    ObjectOutputStream os = new ObjectOutputStream(s.getOutputStream());
    os.writeObject(array);
于 2012-12-27T13:51:49.500 に答える