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));
    // ...

}

 修改后:

 

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()));
// ...

}

 

相关文章:

  • 2021-10-30
  • 2021-12-06
  • 2021-04-06
  • 2022-12-23
  • 2021-06-12
  • 2021-12-18
  • 2021-05-07
猜你喜欢
  • 2022-12-23
  • 2022-03-04
  • 2022-12-23
  • 2022-12-23
  • 2021-06-28
  • 2021-08-13
  • 2021-06-18
相关资源
相似解决方案