0

オブジェクトをソケットに送信するアプリを Java で作成しています。接続の反対側には、オブジェクトを受信して​​コンテンツを表示する必要がある別のアプリがあります........

スキャナーを使用してアプリにテキストを受信させました。

in = new Scanner(socket.getInputStream());
while (in.hasNext()
{
   system.out.println(in.next)
}

ただし、同じメソッドを使用してオブジェクトを送信しようとすると、コードはコンパイルできません。printNumber() は、送信しようとしているオブジェクト内の手段です。

in = new Scanner(socket.getInputStream());
while (in.hasNext()
{
   system.out.println(in.printNumber())
}

インターネットを調べて、何をすべきかを説明するチュートリアルや何かを見つけようとしましたが、実際に何を探しているのかわかりません。誰かが私を正しい方向に向けることができますか?

乾杯

4

2 に答える 2

1

データをどのようにシリアル化しますか?

ObjectOutputStreamを使用している場合は、それを読み取るためにObjectInputStreamが必要です。

XMLEncoderを使用している場合は、それを読み取るためにXMLDecoderが必要です。

各シリアライザーには適切なデシリアライザーがあり、一致するものを使用する必要があります。

于 2013-01-03T19:53:52.413 に答える
1

まず、送信されたオブジェクトではなく、Scanner. いいえprintNumber()Scannerクラスに存在します。

次に、シリアル化されたオブジェクトにスキャナーを使用しないでください。スキャナーはScannerテキスト入力用に設計されています。ObjectInputStream代わりに使用してください:

in = new ObjectInputStream(socket.getInputStream()); 
System.out.println(in.readObject());
于 2013-01-03T19:57:39.413 に答える