2

さて、私はこれに何日も取り組んできましたが、どこにも情報が見つかりません。かなりうまくいくシンプルなゲームを作りましたが、2人用の機能を追加したかったのです。LAN経由で別のコンピューターへの接続をすでに確立していますが、データをどのように送信するかわかりません。ObjectOutputStreamへの書き込みは理解していますが、反対側にそれを解釈させるにはどうすればよいですか?各変数を個別に送信しますか?今のところ、私は敵、プレイヤーの位置、スコア、そして人生のために配列を送ろうとしています。クライアントが理解できる方法で送受信するにはどうすればよいですか?ご協力いただきありがとうございます。質問内容が明確でない場合は申し訳ありません。言い方がわかりません。

4

2 に答える 2

3

シリアル化が必要です。これは、情報を含むJavaクラスを一連のバイトに変換することを意味します。これらのバイトはクライアントに転送され、そこで逆シリアル化されて、必要なデータを保持している元のJavaクラスが返されます。

Javaでは、これのほとんどは自動的に行われます。あなたはこれを見ることから始めることができます。

于 2012-06-25T05:46:10.723 に答える
2

それは本当に依存します。テキストデータのストリームを送信するだけでよいと思います。これにより、アプリケーションのデバッグが向上し、他の言語で記述された他のアプリケーションが独自のアプリケーションとインターフェイスできるようになります。

XStream(チュートリアルはこちら)をご覧ください。これにより、データを簡単にXML形式に変換して送信できるようになります。

明確にするために、あなたはまだ、最終的にはデータをバイトとして送信します。しかし、私の提案では、バイトは文字列を表し、シリアル化されたJavaオブジェクトは表しません。

編集:他の質問へのあなたのコメントに従って、あなたはこれを行うことができます:

public class GameDataProtocol
{
    private Enemy[] enemies;
    private Point position;
    private int score;
    private int liveCount;

    //Constructors, Getters and Setters.
}

上記のクラスに情報を入力し、XMLでエンコードして、クライアントに送信します。クライアントはそれをデコードし、それに応じてデータを更新します。

于 2012-06-25T05:46:49.207 に答える