まず第一に、私は知っている、これは重複した質問だが、他の答えでは、私はそれを理解できない!
私はjavaのソケットを使用してクライアントとサーバーの接続を行っています。私はListenerというクラスを持っています。これは、新しいクライアントを得るたびにクライアントソケットに割り当てます。それから私は繰り返しクライアントに耳を傾けています。クライアントから回答が得られたら、それをインターフェイス "クラス"のメソッドに送ります(この最後のことは実際にはこの質問ではありませんが、
マイコード)それについて尋ねる:「s」はソケットで、「OB」Java - エラーStreamCorruptedException:無効なタイプコード:AC
while(!s.isClosed()){
ob = new ObjectInputStream(s.getInputStream());
try {
handler.objectReceived(ob.readObject(), instance);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
はObjectOutputStreamのある、そして「ハンドラは、」上記のインターフェースです。しかし、しばらくしてから、私はエラーjava.io.StreamCorruptedException:handler.objectReceived(ob.readObject(), instance);
行の無効な型コード:ACを取得します...
任意のヘルプ?
注:この質問に重複してはいけません。私は他の答えを理解することはできません、そして、私はそれをはっきりと説明する人を求めています。その後、改造が必要な場合は削除することができます、答えてください!私はちょうどこのエラーで本当に迷惑になっています!
また、ソケットを介してオブジェクトを送信しているコードを投稿することもできます – AntJavaDev
ここに謎はありません。あなたは、複製物の私の答えがしないことを正確にしています。ループの外側で 'ObjectInputStream'を作成します。 NB 'isClosed()'は適切な終了条件ではありません。正しい条件は 'EOFException'です。 – EJP
私はそれをループの外に置きましたが、それでもエラーを返します... – JHacking