`

关闭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 server关闭时导致socket client也关闭 的原因及解决办法

    当Server端主动关闭Socket,它会发送一个FIN( Finish)标志来通知Client端即将结束连接。Client在接收到这个FIN后,会进入TIME_WAIT状态,等待一段时间确保Server完全关闭连接。此时,Client虽然不能向Server发送新...

    对一个对端已经关闭的socket调用两次write, 第二次将会生成SIGPIPE信号, 该信号默认结束进程.zip

    当我们处理TCP连接时,必须了解如何正确地管理和关闭Socket,因为不恰当的操作可能导致一些异常情况,例如标题中提到的问题:“对一个对端已经关闭的socket调用两次write, 第二次将会生成SIGPIPE信号, 该信号默认...

    浅谈python中真正关闭socket的方法

    然而,正确地关闭Socket连接并不像调用`close()`方法那么简单。本篇文章将深入探讨如何在Python中真正有效地关闭Socket连接,确保资源的及时释放,避免可能导致的内存泄漏或错误状态。 首先,我们来看`close()`方法...

    socket客户端

    此外,`Socket`类还提供了其他方法,如`Shutdown`用于关闭发送或接收功能,`Close`用于关闭套接字,以及`Dispose`用于释放资源。为了保持良好的编程实践,应当在不再需要Socket对象时正确关闭和清理资源。 在实际...

    HPSocket.Net-develop_hpsocket.net_HPSocket_.net_socket_tcp_

    总结来说,这个压缩包提供的知识涵盖了C#中的Socket编程基础,特别是使用HPSocket.Net库进行TCP通信的方法,对于需要进行网络编程的开发者来说,是一个非常有价值的参考资料。通过学习和实践,开发者能够掌握高效、...

    Java通过关闭Socket终止线程

    `shutDown()` 方法负责关闭Socket,当调用 `close()` 方法时,任何正在进行的I/O操作都将被中断,从而触发 `IOException`,这在我们的例子中将导致 `run()` 方法结束。 注意,由于多线程环境下的并发问题,`io....

    c#socket断开重连

    记得在程序结束时关闭Socket并释放资源: ```csharp socket.Shutdown(SocketShutdown.Both); socket.Close(); ``` 通过以上步骤,我们可以在C#中实现Socket的断开重连功能,并能持续循环接收服务器数据。注意在...

    VB6.0 简单 Socket 服务端

    6. **关闭连接**:在需要断开连接时,调用`Winsock1.Close`方法。 7. **用户交互**:根据需求,更新UI显示连接状态、接收到的数据等信息。 通过以上步骤,一个简单的VB6.0 Socket服务端就能运行起来了。不过,实际...

    Linux网络编程socket错误码分析

    可能的原因包括 socket 关闭但是 socket 号并没有置-1、write(..) on a socket that has been closed at the other end。处理方法是屏蔽 SIGPIPE 信号,避免进程被杀死。 5. EBADF:此错误码表示文件描述符无效。...

    socket池,socket

    当连接完成后,不再需要的Socket不立即关闭,而是返回到池中供其他请求使用,从而减少了Socket的创建和销毁次数,降低了系统开销,提高了性能。 实现Socket池的关键在于如何有效地管理和调度Socket。这包括以下几个...

    SuperSocket Socket C# 通讯详细介绍

    SuperSocket提供了一种简单的方法来解析和组装网络数据包,使得数据传输更加规范。 4. **AppDomain**: 应用域,SuperSocket支持在一个AppDomain中运行多个独立的服务实例,这样可以实现服务的隔离,提高系统的稳定...

    C# Socket 客户端服务端封装带使用实例

    5. 关闭Socket:调用Close方法关闭Socket连接。 四、Socket服务端封装 1. 绑定监听:使用Socket的Bind方法绑定到特定的IP地址和端口,然后调用Listen方法开始监听。 2. 接受连接:调用Accept方法等待并接受客户端的...

    socket客户端_socket_

    当通信完成后,客户端需要关闭Socket,释放网络资源。调用`close()`方法可实现这一点。良好的编程习惯是确保所有打开的Socket最终都能被关闭。 7. **异常处理**: Socket编程中,网络异常如连接失败、数据传输...

    socket概念socket概念socket概念

    6. **关闭Socket**:完成通信后,双方都需要关闭Socket,释放资源。 **四、Socket API** 在编程中,我们通常使用操作系统提供的Socket API来操作Socket。例如,在Unix/Linux系统中,这些API包括socket(), bind(), ...

    android Socket通信方法与思路

    本文将深入探讨Android平台下的Socket通信方法与思路。 首先,理解Socket的基本概念。Socket,又称为套接字,是网络编程中的一个抽象概念,用于描述IP地址和端口号的组合,是应用层与传输层的接口。在Android中,...

    SocketTool

    4. 关闭连接:完成通信后,双方都需调用`close()`方法关闭Socket,释放资源。 SocketTool作为一款测试工具,其功能可能包括: 1. 客户端模拟:允许用户输入目标IP地址和端口号,模拟TCP或UDP连接,发送自定义的...

    C#与Android Socket通信

    7. 在处理完客户端请求后,记得关闭Socket连接。 二、Android Socket客户端实现 1. Android应用中,同样需要引用java.net命名空间,使用java.net.Socket类建立客户端。 2. 创建Socket对象,指定服务器的IP地址和...

    Android开发,Socket Client端和Socket Server端数据发送和接收

    - **关闭资源**:在完成数据交换后,应关闭Socket、InputStream和OutputStream,避免资源浪费。 9. **示例代码** - Server端示例: ```java ServerSocket serverSocket = new ServerSocket(12345); Socket ...

    spring集成socket服务

    这个类通常包含一个`start()`方法,用于启动Socket服务,以及一个`stop()`方法,用于关闭Socket服务。在`start()`方法中,我们可以调用之前创建的Socket服务Bean的启动方法。同时,为了确保Socket服务只在所有依赖的...

    判断Socket是否断开的小代码

    - 当检测到Socket连接断开时,调用`CloseSocket`方法关闭Socket。 - 读取并处理接收到的数据。 #### 代码详解 ```csharp private void OnReceive(object ob) { var key = ClientSocket.LocalEndPoint as ...

Global site tag (gtag.js) - Google Analytics