使用Java.nio。*中断输入#read()而不关闭套接字的方法?

问题描述 投票:0回答:0
您知道一种从Java中断读取的方法,而不关闭关联的插座?

当前是抓住插座输入流并转换为可中断数据的策略:

InputStream

使用A

InputStream interruptibleInputStream = Channels.newInputStream(Channels.newChannel(m_ConnectionData.getSocket().getInputStream())); DataInputStream myInterruptibleDIS = new DataInputStream(interruptibleInputStream);
提供了一种支持throwable的方法。

问题是在线程上调用中断,在the上呼叫

ReadableByteChannel

read(ByteBuffer)
上呼叫会导致下面的插座关闭。

对于我的上下文,我需要插座才能保持打开状态;
ClosedByInterruptException
呼叫正在等待未来的用户输入,因此我使用中断将控件传递回更高的组件,然后最终再次返回

read()

DataInputStream
。 如果有人可以建议使用JDK Instruilt课程提出一种方法,或者指出某些信息是不可能的。
我知道还有其他方法可以实现相同的效果,但是仍然很好奇知道这种方法是否可行。
    

如果您每次超时触发器中断线程的状态。更好的是,请查看中断线程的要求。那是为了什么?

    

java sockets nio
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.