加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 读取NIO SocketChannel的超时时间?

发布时间:2020-12-15 04:11:37 所属栏目:Java 来源:网络整理
导读:参见英文答案 Timeout for SocketChannel doesn’t work????????????????????????????????????3个 如果在建立连接后的一段时间内没有收到数据,设置超时以关闭NIO SocketChannel的最佳方法是什么? 解决方法 或者: 您正在使用选择器,在这种情况下,您可以使用
参见英文答案 > Timeout for SocketChannel doesn’t work????????????????????????????????????3个
如果在建立连接后的一段时间内没有收到数据,设置超时以关闭NIO SocketChannel的最佳方法是什么?

解决方法

或者:

>您正在使用选择器,在这种情况下,您可以使用选择超时,如果它关闭(选择(超时)返回零),您将关闭所有已注册的通道,或者
>您正在使用阻塞模式,您可能认为您应该能够在底层套接字(SocketChannel.socket())上调用Socket.setSoTimeout(),并捕获在读取期间超时到期时抛出的SocketTimeoutException( ),但你不能,因为它不支持源自通道的套接字,或
>您正在使用没有选择器的非阻塞模式,您需要更改为大小写(1).

所以你需要直接使用case(1)或java.net.Socket.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读