为什么netty无法区分socket close和socket half close

时间:2012-03-08 11:00:04

标签: nio netty

我有一个兴趣问题,当我以半关闭方式关闭(OIO)套接字输出流时,Netty服务器检测事件并在处理程序中触发ChannelClose方法,但在客户端,套接字打开并连接,然后我完成在客户端关闭套接字,但这次,Netty服务器没有反映。

不是很奇怪吗?

1 个答案:

答案 0 :(得分:3)

没有人能分辨出来。关闭输出发送FIN。关闭发送FIN,除非它已经被发送,即通过关闭。 FIN在接收器处出现为EOS(EOF)条件。服务器从关机中获取了FIN,看到它作为EOS,关闭了套接字,你的客户端获得了FIN,看到它作为EOS,关闭了套接字,并向服务器发送了...... nothing ,因为FIN已经被发送了。