0
Ich versuche, von einem Client, der libgdx für die Schnittstelle zu einem Server verwendet, eine Verbindung herzustellen. Ich benutze Kryonet sowohl auf dem Client als auch auf dem Server. Es funktioniert jedoch nicht. Irgendeine Idee, was ist los?Client mit Server verbinden Kryonet und Libgdx
Hier ist der Code, den ich im Client verwenden:
Client client = new Client();
Kryo kryo = client.getKryo();
kryo.register(String.class);
client.start();
new Thread() {
public void run() {
try {
client.connect(5000, "localhost", 54555, 54777);
client.addListener(new Listener() {
public void received(Connection connection, Object object) {
if (object instanceof String) {
String response = (String) object;
System.out.println(response);
}
}
});
} catch (IOException e) {
Log.warn("expection", e);
}
}
}.start();
client.sendTCP("Hey There");
Hier ist der Servercode:
Server server = new Server();
Kryo kryo = server.getKryo();
kryo.register(String.class);
server.start();
try {
server.bind(54555, 54777);
} catch (IOException e) {
e.printStackTrace();
}
server.addListener(new Listener() {
public void received (Connection connection, Object object) {
if (object instanceof String) {
String request = (String)object;
System.out.println("Server"+request);
String response = "Login succes";
connection.sendTCP(response);
}
}
});
ist hier der Fehler, die ich erhalten:
[kryonet] Error updating connection.
com.esotericsoftware.kryonet.KryoNetException: Incorrect number of bytes (1 remaining) used to deserialize object: null
at com.esotericsoftware.kryonet.TcpConnection.readObject(TcpConnection.java:146)
at com.esotericsoftware.kryonet.Client.update(Client.java:255)
at com.esotericsoftware.kryonet.Client.run(Client.java:338)
at java.lang.Thread.run(Unknown Source)
Exception in thread "Client" com.esotericsoftware.kryonet.KryoNetException: Incorrect number of bytes (1 remaining) used to deserialize object: null
at com.esotericsoftware.kryonet.TcpConnection.readObject(TcpConnection.java:146)
at com.esotericsoftware.kryonet.Client.update(Client.java:255)
at com.esotericsoftware.kryonet.Client.run(Client.java:338)
at java.lang.Thread.run(Unknown Source)
00:05 WARN: expection
java.net.SocketTimeoutException: Connected, but timed out during TCP registration.
Note: Client#update must be called in a separate thread during connect.
at com.esotericsoftware.kryonet.Client.connect(Client.java:168)
at com.esotericsoftware.kryonet.Client.connect(Client.java:117)
at me.fort.historywars.LoginScreen$1.run(LoginScreen.java:37)
Ich habe versucht zu tun, was Sie vorgeschlagen, aber ich bekomme die gleiche Error. Außerdem habe ich nach 'null' gesucht, aber ich sende keinen 'null' String. Es funktioniert, wenn ich versuche, von einem Client zu verbinden, der nicht Teil einer Libgdx-App ist. Ich bekomme nur den Fehler, wenn der Client in Libgdx ist. – Andy
@Andy verbinden Sie von Desktop oder Android? –
Ich versuche eine Verbindung von Desktop – Andy