在Java中成功关闭套接字时是否可以触发事件?

在Java中成功关闭套接字时是否可以触发事件?,java,sockets,Java,Sockets,参考我之前提出的问题,插座闭合需要一些时间才能操作: 我可以要求它在关闭套接字时运行多个代码吗?谢谢。我遇到了SocketChannels,据我所知(以及堆栈溢出所知),JDK不支持这种方式。然而,我并没有因此而停止。通过适当的封装,您可以执行以下操作: public class SocketWrapper implements Closeable { private final Socket socket; public SocketWrapper(Socket socke

参考我之前提出的问题,插座闭合需要一些时间才能操作:

我可以要求它在关闭套接字时运行多个代码吗?谢谢。

我遇到了
SocketChannel
s,据我所知(以及堆栈溢出所知),JDK不支持这种方式。然而,我并没有因此而停止。通过适当的封装,您可以执行以下操作:

public class SocketWrapper implements Closeable {
    private final Socket socket;

    public SocketWrapper(Socket socket) {
        this.socket = socket;
    }

    /**
    * Provide all the methods you need in your application
    * for accessing the internal socket
    */

    public void close() throws IOException {
        socket.close();
        fireClosedEvent();
    }

    /**
    * Event firing methods, etc.
    */
}
这并不像我希望的那样灵活,这就是为什么我仍然没有回答我的问题,但这可能是一个很好的解决方案。当然,想出一个比
SocketWrapper
更好的名字可能是个好主意。

我遇到了
SocketChannel
s,据我所知(以及据堆栈溢出所知),JDK不支持这样做。然而,我并没有因此而停止。通过适当的封装,您可以执行以下操作:

public class SocketWrapper implements Closeable {
    private final Socket socket;

    public SocketWrapper(Socket socket) {
        this.socket = socket;
    }

    /**
    * Provide all the methods you need in your application
    * for accessing the internal socket
    */

    public void close() throws IOException {
        socket.close();
        fireClosedEvent();
    }

    /**
    * Event firing methods, etc.
    */
}

这并不像我希望的那样灵活,这就是为什么我仍然没有回答我的问题,但这可能是一个很好的解决方案。当然,想出一个比SocketWrapper更好的名字可能是个好主意。

我不知道你说close需要一些时间来操作是什么意思。据我所知,close()是非阻塞的。它马上就回来了。我不知道你说的close需要一些时间来操作是什么意思。据我所知,close()是非阻塞的。它马上就回来了。可能是