0
インタフェースにlibgdxを使用するクライアントからサーバに接続しようとしています。私は、クライアントとサーバーの両方でKryonetを使用します。しかし、それは動作していません。どのようなアイデアが間違っている?ここでクライアントをサーバに接続するKryonetとLibgdx
は私がクライアントで使用したコードである:ここでは
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");
は、サーバーコードである:ここで
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);
}
}
});
は私が取得エラーです:
[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)
は、私はあなたが示唆したものをやってみましたが、私は同じ取得エラー。また、私は 'null'をチェックしましたが、' null'文字列を送信していません。私はLibgdxアプリケーションの一部ではないクライアントから接続しようとすると動作します。クライアントがLibgdxの中にいるときだけエラーが出ます。 – Andy
@AndyデスクトップまたはAndroidから接続していますか? –
私はデスクトップから接続しようとしています – Andy