NettyIO 从服务器断开客户端
NettyIO disconnect Client from Server
如何断开 netty 客户端与服务器的连接,以便它在服务器端执行 handerRemoved
方法并完全停止 运行?我尝试使用 group.shutDownGraceFully()
但客户端仍保持与服务器的连接。有没有我缺少的方法?
我还注意到,当我尝试连接到服务器但它无法访问(连接被拒绝)时,下次我连接到真实服务器时它会连接但它不会发送或接收任何消息。
总的来说,您似乎是网络编程的新手。
我是 netty 的新手,所以请不要将我所说的任何内容都视为 100% 正确,尤其是在任何接近 100% 有效的地方。
所以网络编程的一个主要基本事实是客户端和服务器没有直接链接(很明显)。为了在服务器上执行一个方法,您需要从客户端向服务器发送一条消息。例如:
您在客户端上拥有的内容:
//on shutdown
{
workerGroup.shutdownGracefully();
bossGroup.shutdownGracefully();
}
你想要什么:
{
yourchannelname.writeAndFlush("bye"+"\r\n")
workerGroup.shutdownGracefully();
bossGroup.shutdownGracefully();
}
当服务器收到再见命令时:
// If user typed the 'bye' command, wait until the server closes
// the connection.
if ("bye".equals(line.toLowerCase())) {
ch.closeFuture().sync();
break;
}
}
//this is for safety reasons, it is optional-ish
// Wait until all messages are flushed before closing the channel.
if (lastWriteFuture != null) {
lastWriteFuture.sync();
}
//what you already have
} finally {
// The connection is closed automatically on shutdown.
group.shutdownGracefully();
}
}
希望这对您有所帮助,我以前从未回答过有关堆栈溢出的问题,所以我希望我至少听起来像我知道我在做什么 :P
如何断开 netty 客户端与服务器的连接,以便它在服务器端执行 handerRemoved
方法并完全停止 运行?我尝试使用 group.shutDownGraceFully()
但客户端仍保持与服务器的连接。有没有我缺少的方法?
我还注意到,当我尝试连接到服务器但它无法访问(连接被拒绝)时,下次我连接到真实服务器时它会连接但它不会发送或接收任何消息。
总的来说,您似乎是网络编程的新手。
我是 netty 的新手,所以请不要将我所说的任何内容都视为 100% 正确,尤其是在任何接近 100% 有效的地方。
所以网络编程的一个主要基本事实是客户端和服务器没有直接链接(很明显)。为了在服务器上执行一个方法,您需要从客户端向服务器发送一条消息。例如:
您在客户端上拥有的内容:
//on shutdown
{
workerGroup.shutdownGracefully();
bossGroup.shutdownGracefully();
}
你想要什么:
{
yourchannelname.writeAndFlush("bye"+"\r\n")
workerGroup.shutdownGracefully();
bossGroup.shutdownGracefully();
}
当服务器收到再见命令时:
// If user typed the 'bye' command, wait until the server closes
// the connection.
if ("bye".equals(line.toLowerCase())) {
ch.closeFuture().sync();
break;
}
}
//this is for safety reasons, it is optional-ish
// Wait until all messages are flushed before closing the channel.
if (lastWriteFuture != null) {
lastWriteFuture.sync();
}
//what you already have
} finally {
// The connection is closed automatically on shutdown.
group.shutdownGracefully();
}
}
希望这对您有所帮助,我以前从未回答过有关堆栈溢出的问题,所以我希望我至少听起来像我知道我在做什么 :P