【发布时间】:2013-05-15 14:56:10
【问题描述】:
我有一个服务器程序需要关闭服务器关闭时剩余的所有连接。我知道我需要致电SocketChannel.close()。我的问题是我是否还需要关闭与SocketChannel 关联的套接字,或者SocketChannel.close() 是否会自动关闭。
【问题讨论】:
标签: java sockets networking channel socketchannel
我有一个服务器程序需要关闭服务器关闭时剩余的所有连接。我知道我需要致电SocketChannel.close()。我的问题是我是否还需要关闭与SocketChannel 关联的套接字,或者SocketChannel.close() 是否会自动关闭。
【问题讨论】:
标签: java sockets networking channel socketchannel
当然它会关闭套接字。还有什么用?唯一的例外是当通道注册到 Selector 时,当实际关闭延迟到下一个选择操作时。
【讨论】:
SocketChannel.close() 应该关闭 Socket。但是,围绕这个问题存在一些错误(应该很久以前就已经解决了)。 http://bugs.sun.com/view_bug.do?bug_id=4960962。另一种可能导致问题的情况:http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6179351
【讨论】: