gpt4 book ai didi

java - Kryonet 客户端超时后断开连接

转载 作者:行者123 更新时间:2023-12-01 14:02:58 26 4
gpt4 key购买 nike

当我使用这条线路进行连接时,我的 Kryonet 服务器在 5000 毫秒后断开连接client.connect(5000, 主机, Network.port);我以为 5000 是连接超时,但当我运行连接时,它能够连接并接收我发送的类,但在 5000 毫秒后与服务器断开连接。

我正在修改 Kryonet 提供的基本 ChatClient.java。这是我的想法。

import java.awt.EventQueue;
import java.io.IOException;

import com.badlogic.gdx.ApplicationListener;
import com.esotericsoftware.kryonet.Client;
import com.esotericsoftware.kryonet.Connection;
import com.esotericsoftware.kryonet.Listener;
import com.me.mygdxgame.Network.Obstacles;

public class GameClient implements ApplicationListener{
Client client;
String name;

public GameClient () {
client = new Client();
client.start();

// For consistency, the classes to be sent over the network are
// registered by the same method for both the client and server.
Network.register(client);

client.addListener(new Listener() {
public void connected (Connection connection) {
System.out.println("connected");
}

public void received (Connection connection, Object object) {
if (object instanceof Obstacles) {
Obstacles obs = (Obstacles)object;
System.out.println("Obstacle recieved on client - " + obs.obstacles.size());
return;
}else {
System.out.println("invalid packet");
}
}

public void disconnected (Connection connection) {
EventQueue.invokeLater(new Runnable() {
public void run () {
client.close();
// Closing the frame calls the close listener which will stop the client's update thread.
}
});
}
});

final String host = "localhost";

// We'll do the connect on a new thread so the ChatFrame can show a progress bar.
// Connecting to localhost is usually so fast you won't see the progress bar.
new Thread("Connect") {
public void run () {
try {
client.connect(5000, host, Network.port);
// Server communication after connection can go here, or in Listener#connected().
} catch (IOException ex) {
ex.printStackTrace();
System.exit(1);
}
}
}.start();
}

@Override
public void create() {
// TODO Auto-generated method stub

}

@Override
public void resize(int width, int height) {
// TODO Auto-generated method stub

}

@Override
public void render() {
// TODO Auto-generated method stub

}

@Override
public void pause() {
// TODO Auto-generated method stub

}

@Override
public void resume() {
// TODO Auto-generated method stub

}

@Override
public void dispose() {
// TODO Auto-generated method stub

}
}

最佳答案

尝试使用client.SetKeepAliveTCP(int较小然后断开连接时间);

关于java - Kryonet 客户端超时后断开连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19198360/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com