java - 实现可关闭的套接字/服务器套接字

标签 java sockets

为了最大限度地减少样板代码,我希望有一个 Socket 和 ServerSocket 类,它们都实现 Closeable 接口(interface)。

我发现在 Java 7 中,Socket 和 ServerSocket 很可能实现 Closeable,所以我不能这样做:

public class ClosableSocket extends Socket implements Closeable {}

并实现所需的构造函数?或者有更好的解决方案吗?我想要的是将它与 Apache Commons IO IOUtil.closeQuietly(Closeable closeable) 结合使用.

最佳答案

我想要类似的东西

public static void closeQuietly(Object object) {
    try {
        if (object instanceof Closeable)
            ((Closeable)object).close();
        else if (object instanceof Socket)
            ((Socket)object).close();
        else if (object instanceof ServerSocket)
            ((ServerSocket)object).close();
        else 
            // use reflections to call close() if you must.

    } catch (IOException ignored) {
        // ignored
    }
}

关于java - 实现可关闭的套接字/服务器套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5220120/

相关文章:

java - setVisible (true) 直到页面刷新才显示

c - 在 Linux 上的 C 程序中从套接字描述符获取 struct socket*、struct sock *

c - C 中的 fork 和 PID

具有恒定堆大小的 Java 进程在操作系统中分配越来越多的内存

java - 在 Java 中根据逗号分隔的字符串按字段创建枚举列表

java - 在 apache karaf 上使用 apache Camel 蓝图的 Soap 请求失败

c# - Java 与 C# Web 服务客户端

linux - Freepascal,Indy SVN 主干版本,PHP 客户端在传输 XML 时没有收到任何信息,直到删除编码转换

javascript - 使用 NodeJS TLS 套接字的 HTTPS 通信

c++ - QTcpSocket 发送的数据比想要的多 - Qt/C++