私が大学で取り組んでいるこのJavaプロジェクトでは、現在、ネットワーク経由で文字列を正常に送信している状況があります
streamOut = ObjectOutputStream
streamIn = ObjectInputStream
streamOut.writeUTF(msgs.peek());
ここで、msgs はリンクされたブロッキング キューであり、次のように受信します
String in = streamIn.readUTF();
ただし、ObjectInputStream と ObjectOutputStream を使用したいと考えています。コンストラクターで両方を初期化し、構築後に ObjectOutputStream をフラッシュします。これを行う必要がある場所を読みました。
文字列と別のオブジェクト型の両方を送信したいのですが、それをネットワーク経由で gameWorld と呼びます (この時点では効率は気にしません)。
streamOut.writeObject("mad cuz i'm bad");
Object in = streamIn.readObject();
if(in instanceof String) String inS = (String) in;
文字列を送信しても何も検出されません... 私の友人は同じプロジェクトに取り組んでおり、1 種類のオブジェクトのみを渡します。このオブジェクトのサブクラスの 1 つは本質的に文字列であり、彼のバージョンは正常に動作します。しかし、彼はスレッドの実行ループの反復ごとに新しいストリームを作成します。
オブジェクト以外の共通の先祖を持たないさまざまなオブジェクトを受け取るためにストリームで何かをする必要がありますか、実行ループの反復ごとに新しいストリームを作成する必要がありますか、それとも完全に別のものがありますか?不足していて、私が提供した情報では何が問題なのかを判断するのに十分ではありませんか?