2011-12-22 8 views
-1

gpsデバイスでサーバを接続しました。例外はあなたがソケットから取得しているデータストリームが有効なオブジェクトストリームではないことを示唆しているObjectInputStreamのjava.io例外

java.io.StreamCorruptedException: invalid stream header: 24312C38 
at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:783) 
at java.io.ObjectInputStream.<init>(ObjectInputStream.java:280) 
at com.tm4u.ServerSocketExample.main(ServerSocketExample.java:34) 

答えて

1

:そして、データを読み取るため、私は次の例外を生成したコード

ObjectInputStream ois = new ObjectInputStream(socket.getInputStream()); 

を使用しています。オブジェクトストリームは、Javaプロセスによって直列化されたJavaオブジェクトを読み込むためのものです。 GPSデバイスからデータを読み取っている場合、そのデバイスが送信しているストリームの種類は疑わしいです。

0

は、私はあなたがGPSデバイスからデータを読み出すためにInputStreamReaderのDataInputStreamのまたはにBufferedInputStreamを使用する必要があります確信しています。

するObjectInputStreamが使用されるがたObjectOutputStreamを介して他のアプリケーションによって送信されたJavaオブジェクトを読み取ります。これらは互換性の低いストリームです。たとえば、JVMオブジェクトのシリアル化プロトコルは同じでなければなりません。私は、GPSデバイスの製造元がこの方法でこのデバイスを使用するように設計したかどうかは疑問です。

+0

Thnanks bt私は両方のメソッドを使用していますが、このコード・プログラムが実行されていない場合よりもreadLine()メソッドを使用してBufferedInputStreamを使用しています。 –