【发布时间】:2012-03-09 13:44:24
【问题描述】:
我遇到了一个有趣的问题,当我以半关闭方式关闭(OIO)套接字输出流时,Netty 服务器检测到事件并在处理程序中触发 ChannelClose 方法,但在客户端,套接字是打开并连接的,然后我完成在客户端关闭套接字,但这一次,Netty 服务器没有得到任何反映。
是不是很奇怪?
【问题讨论】:
-
对不起,我不明白你的问题...你能提供更多细节吗?
我遇到了一个有趣的问题,当我以半关闭方式关闭(OIO)套接字输出流时,Netty 服务器检测到事件并在处理程序中触发 ChannelClose 方法,但在客户端,套接字是打开并连接的,然后我完成在客户端关闭套接字,但这一次,Netty 服务器没有得到任何反映。
是不是很奇怪?
【问题讨论】:
没有人能分辨出来。关闭输出会发送一个 FIN。关闭发送一个 FIN,除非它已经发送,即通过关闭。 FIN 作为 EOS (EOF) 条件出现在接收器上。服务器从关机中获得了 FIN,看到是 EOS,关闭了套接字,您的客户端获得了 FIN,看到了 EOS,关闭了套接字,然后向服务器发送了...nothing,因为 FIN 已经发送了。
【讨论】: