質問

まず、座標がおそらく間違った用語であることがわかりますか?私は単にx変数とy変数を渡すだけだと思いますが、座標はそれをより良く説明していると感じています。

今、2人のクライアントがアクセスできるサーバーが必要です。これはレーシングゲームであり、各クライアントが同時に異なる制御スキームを使用してレースカーを操縦できる必要がありますが、それはここにもそこにもありません。

レースカーのx位置とy位置をサーバーに送信し、サーバーがそれらを次のプレイヤーに送信するか、その逆に両方のレースカーが移動できるようにするときに、誰かが私を支援できることを望んでいました各クライアントウィンドウで同じ時間。これまでのところ、太陽のWebサイトのノックノックサーバーや、サーバーに送信する文字列を繰り返す単純なエコーサーバーなど、単純なサーバーの処理のみを行いました。

文字列の代わりにintを使用しようとしたときに、渡したいintが動的であり(各移動で明らかに変化する)、静的として渡すことができない(readIntおよびwriteIntを使用)というエラーを受け取りました。

したがって、サーバーを介して両方のクライアントウィンドウで必要な動きを作成する方法についてのヘルプをいただければ幸いです。

ありがとう

役に立ちましたか?

解決

簡単な解決策は、 ObjectOutputStream シリアライズ可能オブジェクト

class Coordinates implements Serializable{...}

ObjectOutputStream out = new ObjectOutputStream(...);
out.writeObject(new Coordinates(...));

他のヒント

クレイグ、あなたは近い。動的/静的は誤解です。これは、レーシングゲームや価値観の変化とは関係ありません。 ObjectInputStreamのjavadocにあるように、静的(または一時的)として宣言されているフィールドを逆シリアル化できないというだけです。

  

一時的または静的として宣言されたフィールドは、逆シリアル化プロセスによって無視されます。

解決策は(願わくば)簡単です:x / y整数から static 修飾子を削除すると、問題を解決できます。 btw-文字列が静的だった場合、まったく同じように失敗します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top