在jdk1.5.0_07 之前,不能用socketChannel.close()来关闭socket,而应该使用 socket的shutdown input和output streams,socket.close()来关闭。
jdk1.5.0_07 之后的版本可以用socketChannel.close()来关闭
完整的关闭:
jdk1.5.0_07 之后的版本可以用socketChannel.close()来关闭
完整的关闭:
try {
if (socketChannel != null) {
if (!socketChannel.socket().isInputShutdown()) {
socketChannel.socket().shutdownInput();
}
if (!socketChannel.socket().isOutputShutdown()) {
socketChannel.socket().shutdownOutput();
}
if (!socketChannel.socket().isClosed()) {
socketChannel.socket().close();
}
}
if (socket != null && !socket.isClosed()) {
socket.close();
}
} catch (IOException e) {
}