经过我自定义的输出流,
public class MyObjectOutputStream extends ObjectOutputStream {
public MyObjectOutputStream(OutputStream out) throws IOException {
super(out);
}
@Override
protected void writeStreamHeader() throws IOException {
}
}
客户端在执行以下方法后,
private void sendAudioFile(MyObjectOutputStream objectOutputStream, byte[] audioData) throws IOException {
Map.Entry<String, byte[]> entry = new AbstractMap.SimpleEntry<>(name, audioData);
objectOutputStream.writeObject(entry);
objectOutputStream.flush();
}
服务端执行如下方法接收,
public Object readMessage(ObjectInputStream objectInputStream) throws IOException, ClassNotFoundException {
return objectInputStream.readObject();
}
当服务端执行转发给另一个客户端,该客户端在接收时报错:
Exception in thread "Thread-2" java.lang.ClassCastException: class java.io.ObjectStreamClass cannot be cast to class java.lang.String (java.io.ObjectStreamClass and java.lang.String are in module java.base of loader 'bootstrap')
at uiChat.client.ClientReadThread.run(ClientReadThread.java:38)------------->return objectInputStream.readObject();
为什么服务端接收不报错,且能正确接收,而客户端却无法接收?