这似乎是一个流行的问题,但即使在花费大量时间进行故障排除后,我仍然无法找到解决方案。我希望有一个更新的解决方案。
我正在使用 KryoNet Java 网络库设置一个简单的服务器和客户端。我的问题是我的客户端在连接到服务器后立即断开连接。
这是我的代码:
服务器
public class TheServer extends Listener {
static Server server;
static final int PORT = 8215;
public static void main(String[] args) throws IOException {
server = new Server();
server.start();
server.bind(PORT);
server.addListener(new TheServer());
System.out.println("server started on " + PORT);
}
public void connected(Connection c) {
System.out.println("connected: " + c.getID());
}
public void disconnected(Connection c) {
System.out.println("disconnected: " + c.getID());
}
}
客户
public class TheClient extends Listener {
static Client client;
static final String IP = "localhost";
static final int PORT = 8215;
public static void main(String[] args) throws IOException {
client = new Client();
client.start();
client.connect(5000, IP, PORT);
client.addListener(new TheClient());
//client.setKeepAliveTCP(2000);
}
}
运行TheServer
then 后TheClient
,我的控制台打印:
server started on 8215
connected: 1
disconnected: 1
注意连接和断开之间的时间几乎是即时的,肯定小于我设置的连接超时时间。另请注意,我注释掉了该setKeepAliveTCP()
方法,因为虽然我认为没有必要,但我将其插入以查看它是否有效。