Witam. Mam takie dwie metody:
Klient:
public boolean sendMessage(String message) {
try {
output = new ObjectOutputStream(signMethods.getSocket().getOutputStream());
output.writeObject(new Message(PING));
input = new ObjectInputStream(signMethods.getSocket().getInputStream());
Message pong = (Message) input.readObject();
if (pong.getHeader() == PONG) {
output.writeObject(new Message(CONFIG, message));
return true;
}
output = null;
input = null;
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
return false;
}
Serwer:
public void run() {
while (true) {
try {
if (socket.isConnected()) {
input = new ObjectInputStream(socket.getInputStream());
Message ping = (Message) input.readObject();//tu coś
if (ping.getHeader() == PING) {
output.writeObject(new Message(PONG));
System.out.println(1);
Message message = (Message) connector.getInput().readObject();
System.out.println(message.getMessage());
}
}
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
}
}
Wysyłany obiekt implementuje Serializable. W konsoli serwera pojawia się błąd:
java.io.StreamCorruptedException: invalid type code: AC
at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1615)
at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:422)
at app.classes.users.User.run(User.java:63)
at java.base/java.lang.Thread.run(Thread.java:844)
Szukałem w googlu ale nie znalazłem nic. Nie spotkałem się wcześniej z takim błędem. Z góry dzięki za pomoc.