av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

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

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

瀏覽:140日期: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)的用戶輸入,因此我正在使用中斷將控制權(quán)傳遞回更高的組件,然后最終read再次返回。

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

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

標(biāo)簽: java
相關(guān)文章:
主站蜘蛛池模板: a一级黄色片 | 久久精品久久精品 | 国产白丝精品91爽爽久久 | 99精品久久久久久 | 黄色在线观看免费 | 日日干视频 | 一级黄色网 | 天堂va蜜桃一区二区三区 | 中文字幕2021 | 色婷婷香蕉在线一区二区 | 欧美日韩第一区 | 日本在线| 欧美日韩精品在线 | 亚洲综合伊人 | 国产三级做爰高清在线 | 日韩专区中文字幕 | 一起操在线 | 欧美激情综合 | 久久免费网 | 视频一区二区三区在线观看 | 毛片在线视频 | 一级片大全 | 欧美精品二区 | 一本色道久久综合亚洲精品小说 | 亚洲欧美一区二区三区在线 | 国产精品一区二区三区四区 | 国产成年人视频 | 91在线亚洲| 国产在线日韩 | 国产精品免费在线播放 | www久久久久 | 天堂中文av | 国产精品欧美精品 | av毛片网站 | 免费黄色小说网站 | 好色影院 | 六月婷婷在线 | a在线免费观看 | 无套内谢的新婚少妇国语播放 | 好吊视频一区二区三区四区 | 欧美不卡一区二区三区 |