java.io.StreamCorruptedException: invalid stream header: 00000000
序列化时抛出此异常,原因是因为疏忽传入了一个空的缓冲,注意00000000,这是由于空的缓冲造成的。部分代码如下:
byte
[] buffer
=
new
byte
[
16384
];
//
16k
DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
while ( true ) {
mcastSocket.receive(packet);
ObjectInputStream in = new ObjectInputStream( new ByteArrayInputStream( buffer ));
// ...
DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
while ( true ) {
mcastSocket.receive(packet);
ObjectInputStream in = new ObjectInputStream( new ByteArrayInputStream( buffer ));
// ...
}
修改后:
byte
[] buffer
=
new
byte
[
16384
];
//
16k
DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
while ( true ) {
mcastSocket.receive(packet);
ObjectInputStream in = new ObjectInputStream( new ByteArrayInputStream( packet.getData() ));
// ...
}
DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
while ( true ) {
mcastSocket.receive(packet);
ObjectInputStream in = new ObjectInputStream( new ByteArrayInputStream( packet.getData() ));
// ...
}