真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

javaniosocket的問題實(shí)例分析

本篇內(nèi)容介紹了“java nio socket的問題實(shí)例分析”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

創(chuàng)新互聯(lián)建站擁有網(wǎng)站維護(hù)技術(shù)和項(xiàng)目管理團(tuán)隊(duì),建立的售前、實(shí)施和售后服務(wù)體系,為客戶提供定制化的成都做網(wǎng)站、網(wǎng)站建設(shè)、網(wǎng)站維護(hù)、川西大數(shù)據(jù)中心解決方案。為客戶網(wǎng)站安全和日常運(yùn)維提供整體管家式外包優(yōu)質(zhì)服務(wù)。我們的網(wǎng)站維護(hù)服務(wù)覆蓋集團(tuán)企業(yè)、上市公司、外企網(wǎng)站、商城開發(fā)、政府網(wǎng)站等各類型客戶群體,為全球數(shù)千家企業(yè)提供全方位網(wǎng)站維護(hù)、服務(wù)器維護(hù)解決方案。

第一個(gè)問題:

java nio的開發(fā)過程當(dāng)中,在我們一個(gè)channel對(duì)象的時(shí)候,第一步就是要把它的阻塞模式配置為非阻塞。ServerSocketChannel.configureBlocking(false);

我們?cè)噲D去了解一下這個(gè)configureBlocking函數(shù)究竟做了些什么事情,

但是最終我們找到了一個(gè)native的函數(shù),具體內(nèi)部干了些什么,貌似不是很容易了解。

那么我們?cè)囈幌?,把它配置為true的話,會(huì)發(fā)生什么樣的事情。

結(jié)果,在register到selector上的時(shí)候,直接報(bào)錯(cuò)了。

java.nio.channels.IllegalBlockingModeException

關(guān)于這個(gè)問題,雖然沒有得到一個(gè)確切的答案,不過貌似基本能夠解決我們的一部分疑惑,要使用selector就只能是false。

第二個(gè)問題,有一個(gè)簡單的java nio的例子,當(dāng)中我們用到了SelectionKey當(dāng)中3個(gè)值,OP_READ、OP_CONNECT、OP_ACCEPT。但是如果我們看一下java源碼的話,會(huì)發(fā)現(xiàn),其實(shí)還有一個(gè)值,叫做OP_WRITE,這個(gè)值究竟是怎么用的,因?yàn)樵谖覀冎袄赢?dāng)中,server和client之間的數(shù)據(jù)交換已經(jīng)基本完成,在收到read事件之后,通過channel把響應(yīng)寫回去,貌似沒有OP_WRITE什么事?。。?!

首先我們對(duì)OP_READ、OP_CONNECT、OP_ACCEPT這幾個(gè)值,重新進(jìn)行一下解釋,以O(shè)P_READ為例,應(yīng)該解釋為read就緒,換句話說,對(duì)方,已經(jīng)向我寫入數(shù)據(jù)了,這個(gè)時(shí)候開始讀了。

那么OP_WRITE就好解釋了,寫就緒,那么寫就緒的條件是什么呢?大體可以有2個(gè)條件,自己的寫緩沖區(qū)是有空間的,網(wǎng)絡(luò)環(huán)境是暢通的。

我們?cè)囈幌拢绻覀儼岩粋€(gè)SocketChannel的OP_WRITE注冊(cè)到selector上的話,會(huì)發(fā)生什么樣的事情。

修改一下之前的代碼,Server端,接收一個(gè)客戶端連接之后調(diào)用這樣一句

channel.register(this.selector, SelectionKey.OP_WRITE);//原來是OP_READ

這樣的話,因?yàn)榫W(wǎng)絡(luò)是暢通的,本地的寫緩沖區(qū)也是空間很充裕的,會(huì)一直試圖做寫的事情。

綜上所述,在網(wǎng)絡(luò)環(huán)境很好,以及寫出的任務(wù)量不是很大的情況下,可能并不需要OP_WRITE的使用,而在某些高并發(fā)的情況下,OP_WRITE可能還是有其實(shí)際的用途的。

“java nio socket的問題實(shí)例分析”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!


文章名稱:javaniosocket的問題實(shí)例分析
網(wǎng)頁鏈接:http://weahome.cn/article/pejesp.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部