gpt4 book ai didi

java - 关闭由 ServerSocketChannel.accept() 检索的 SocketChannel

转载 作者:太空宇宙 更新时间:2023-11-04 08:32:24 25 4
gpt4 key购买 nike

我在守护线程上有一个计时器,它不断地将数据写入 SocketChannel 。在主类中,我没有此套接字 channel 的对象引用,但我有 ServerSocket 的引用该套接字 channel 连接到的端口。所以我这样做是为了关闭 channel 。

socketChannel = serverSocket.accept();
socketChannel.close();

但是守护线程的套接字 channel 关闭存在延迟。尽管它们都引用相同的套接字 channel ,但即使在调用上述 close() 后几毫秒,计时器任务也会写入此套接字 channel 。

请建议如何确保完成关闭。这是一个非阻塞 channel 。

最佳答案

你的代码没有意义。该代码根本不“引用相同的套接字 channel ”,因此它不会关闭它:它接受一个新的套接字 channel 并关闭它,这也没有意义,至少对于建立该新连接的客户端来说没有意义,并且可能期望在该连接上提供某些服务,而不是立即关闭。

您只需安排对现有 channel 的引用可供需要关闭它的代码使用。这是编程 101,根本不是一个网络问题。

关于java - 关闭由 ServerSocketChannel.accept() 检索的 SocketChannel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7215131/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com