国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

有什么方法可以使用java.nio。*在不關(guān)閉套接字的情況下中斷InputStream#read()?

瀏覽:105日期:2024-05-02 14:54:46
如何解決有什么方法可以使用java.nio。*在不關(guān)閉套接字的情況下中斷InputStream#read()??

如果在讀取過(guò)程中中斷了InterruptibleChannel,它將被關(guān)閉并拋出ClosedByInterruptException。如果您只想讀取超時(shí),請(qǐng)不要使用任何通道,而只需使用常規(guī)的Socket;用較短的超時(shí)調(diào)用Socket.setSoTimeout(),并在每次超時(shí)觸發(fā)時(shí)檢查線程的isInterrupted()狀態(tài)。更好的是,查看中斷線程的要求。那個(gè)有什么用途?

解決方法

您是否知道在InputStream不關(guān)閉關(guān)聯(lián)套接字的情況下中斷Java讀取的方法?

這是獲取套接字輸入流并轉(zhuǎn)換為可中斷的DataInputStream的當(dāng)前構(gòu)造策略:

InputStream interruptibleInputStream = Channels.newInputStream(Channels.newChannel(m_ConnectionData.getSocket().getInputStream()));DataInputStream myInterruptibleDIS = new DataInputStream(interruptibleInputStream);

這利用ReadableByteChannel提供了read(ByteBuffer)對(duì)ClosedByInterruptExceptionthrowable的支持的方法的a。

問(wèn)題在于,在線程上調(diào)用中斷再在原因read()上調(diào)用DataInputStream會(huì)導(dǎo)致底層套接字被關(guān)閉。

就我而言,我需要使套接字保持打開(kāi)狀態(tài)。該read呼叫正在等待即將到來(lái)的用戶(hù)輸入,因此我正在使用中斷將控制權(quán)傳遞回更高的組件,然后最終read再次返回。

如果有人可以提出一種使用JDK內(nèi)置類(lèi)實(shí)現(xiàn)此目標(biāo)的方法,或者指出某些信息是不可能的,我將不勝感激。

我知道還有其他方法可以達(dá)到相同的效果,但是我很想知道這種方法是否可行。

標(biāo)簽: java
相關(guān)文章:
主站蜘蛛池模板: 国产成人亚洲精品无广告 | 久久99久久精品国产只有 | 久久久精品免费视频 | 欧美精品在线视频观看 | 一区中文字幕 | 六月成人网 | 免费视频网站一级人爱视频 | 亚洲免费网 | 免费欧洲毛片a级视频无风险 | 国产精品亚洲二区 | 久久亚洲精品中文字幕三区 | 精品久久久久不卡无毒 | 性8sex亚洲区入口 | 美女18网站 | 国产网站免费视频 | 国产一区国产二区国产三区 | 91香蕉视频网 | 日本欧美不卡一区二区三区在线 | 男女在线免费视频 | 色婷婷激婷婷深爱五月老司机 | 在线精品国产一区二区 | 一级a爰片久久毛片 | 亚洲天堂二区 | 台湾三级香港三级经典三在线 | 在线 | 一区二区三区四区 | 久久久久亚洲精品一区二区三区 | 一级毛片免费在线观看网站 | 国产免费一区二区在线看 | 免费永久在线观看黄网 | 日韩欧美精品在线视频 | 成年人在线观看免费 | 视频精品一区 | 国产欧美日韩精品一区二 | 欧美一级纶理片免费 | 女人张腿让男桶免费视频网站 | 欧美精品成人一区二区在线观看 | 久久91视频 | 成人精品一区二区三区中文字幕 | 91久久免费视频 | 97se亚洲综合在线韩国专区福利 | 日韩在线视屏 |