1
KryoNet을 사용하여 네트워킹 관련 내용을 배우고 있는데 서버에서 클라이언트로 개체를 보내면 괜찮은 메시지를 보내고 읽을 수는 있지만 읽을 때 읽을 수는 있지만 다시이 오류가 발생합니다.Kryonet은 한 번 이상 사용자 지정 개체를 보낸 후 연결을 끊습니다.
서버 :
server = new Server();
Kryo kryo = server.getKryo();
kryo.register(Command.class, new JavaSerializer());
server.start();
try {
server.bind(54555, 54777);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
클라이언트 :
client = new Client();
Kryo kryo = client.getKryo();
kryo.register(Command.class, new JavaSerializer());
client.setKeepAliveTCP(2000);
client.start();
try {
client.connect(5000, "192.168.1.5", 54555, 54777);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
client.addListener(new Listener() {
public void connected(Connection connection){
}
public void received (Connection connection, Object object) {
if(object instanceof Command){
Command c = (Command) object;
textField.setText(Integer.toString(c.getTime()));
}
}
});
MyClass의 :
public class Command implements Serializable{
private static final long serialVersionUID = 1L;
private int time;
public Command(int time) {
setTime(time);
}
public int getTime() {
return time;
}
public void setTime(int time) {
this.time = time;
}
}
스택 트레이스 :
Exception in thread "Client" com.esotericsoftware.kryo.KryoException: Error during Java deserialization.
at com.esotericsoftware.kryo.serializers.JavaSerializer.create(JavaSerializer.java:42)
at com.esotericsoftware.kryo.Kryo.readClassAndObject(Kryo.java:758)
at com.esotericsoftware.kryonet.KryoSerialization.read(KryoSerialization.java:57)
at com.esotericsoftware.kryonet.TcpConnection.readObject(TcpConnection.java:137)
at com.esotericsoftware.kryonet.Client.update(Client.java:239)
at com.esotericsoftware.kryonet.Client.run(Client.java:317)
at java.lang.Thread.run(Unknown Source)
Caused by: java.io.StreamCorruptedException: invalid stream header: 79737200
at java.io.ObjectInputStream.readStreamHeader(Unknown Source)
at java.io.ObjectInputStream.<init>(Unknown Source)
at com.esotericsoftware.kryo.serializers.JavaSerializer.create(JavaSerializer.java:40)
... 6 more