Java NettyIO断开客户端与服务器的连接
如何断开netty客户端与服务器的连接,使其在服务器端执行Java NettyIO断开客户端与服务器的连接,java,connection,handler,netty,channel,Java,Connection,Handler,Netty,Channel,如何断开netty客户端与服务器的连接,使其在服务器端执行handerRemoved方法并完全停止运行?我尝试使用group.shutDownGraceFully(),但客户端仍保持与服务器的连接。有什么方法我不知道吗 我还注意到,当我尝试连接到服务器时,它无法访问(连接被拒绝),下一次我连接到真正的服务器时,它会连接,但不会发送或接收更多消息。一般来说,你似乎对网络编程不熟悉 我是netty的新手,所以请不要认为我说的话是100%真实的,尤其是在接近100%效率的地方 因此,网络编程的一个主要
handerRemoved
方法并完全停止运行?我尝试使用group.shutDownGraceFully()
,但客户端仍保持与服务器的连接。有什么方法我不知道吗
我还注意到,当我尝试连接到服务器时,它无法访问(连接被拒绝),下一次我连接到真正的服务器时,它会连接,但不会发送或接收更多消息。一般来说,你似乎对网络编程不熟悉 我是netty的新手,所以请不要认为我说的话是100%真实的,尤其是在接近100%效率的地方 因此,网络编程的一个主要基本事实是,客户端和服务器之间没有直接链接(显然)。为了在服务器上执行方法,需要从客户端向服务器发送消息。例如: 客户机上的内容:
//on shutdown
{
workerGroup.shutdownGracefully();
bossGroup.shutdownGracefully();
}
你想要什么:
{
yourchannelname.writeAndFlush("bye"+"\r\n")
workerGroup.shutdownGracefully();
bossGroup.shutdownGracefully();
}
当服务器收到bye命令时:
// 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:D很高兴我帮助你完成了一些事情