序列化时抛出此异常,原因是因为疏忽传入了一个空的缓冲,注意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() )); // ... }
转载于:https://www.cnblogs.com/cuizhf/archive/2011/09/12/2174017.html
相关资源:JAVA上百实例源码以及开源项目