关闭socket的方法

在jdk1.5.0_07 之前,不能用socketChannel.close()来关闭socket,而应该使用 socket的shutdown input和output streams,socket.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) {
        
        }

你可能感兴趣的:(socket)