bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

javaniosocket的問題實例分析

本篇內容介紹了“java nio socket的問題實例分析”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

創新互聯建站擁有網站維護技術和項目管理團隊,建立的售前、實施和售后服務體系,為客戶提供定制化的成都做網站、網站建設、網站維護、川西大數據中心解決方案。為客戶網站安全和日常運維提供整體管家式外包優質服務。我們的網站維護服務覆蓋集團企業、上市公司、外企網站、商城開發、政府網站等各類型客戶群體,為全球數千家企業提供全方位網站維護、服務器維護解決方案。

第一個問題:

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

我們試圖去了解一下這個configureBlocking函數究竟做了些什么事情,

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

那么我們試一下,把它配置為true的話,會發生什么樣的事情。

結果,在register到selector上的時候,直接報錯了。

java.nio.channels.IllegalBlockingModeException

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

第二個問題,有一個簡單的java nio的例子,當中我們用到了SelectionKey當中3個值,OP_READ、OP_CONNECT、OP_ACCEPT。但是如果我們看一下java源碼的話,會發現,其實還有一個值,叫做OP_WRITE,這個值究竟是怎么用的,因為在我們之前例子當中,server和client之間的數據交換已經基本完成,在收到read事件之后,通過channel把響應寫回去,貌似沒有OP_WRITE什么事啊!!!

首先我們對OP_READ、OP_CONNECT、OP_ACCEPT這幾個值,重新進行一下解釋,以OP_READ為例,應該解釋為read就緒,換句話說,對方,已經向我寫入數據了,這個時候開始讀了。

那么OP_WRITE就好解釋了,寫就緒,那么寫就緒的條件是什么呢?大體可以有2個條件,自己的寫緩沖區是有空間的,網絡環境是暢通的。

我們試一下,如果我們把一個SocketChannel的OP_WRITE注冊到selector上的話,會發生什么樣的事情。

修改一下之前的代碼,Server端,接收一個客戶端連接之后調用這樣一句

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

這樣的話,因為網絡是暢通的,本地的寫緩沖區也是空間很充裕的,會一直試圖做寫的事情。

綜上所述,在網絡環境很好,以及寫出的任務量不是很大的情況下,可能并不需要OP_WRITE的使用,而在某些高并發的情況下,OP_WRITE可能還是有其實際的用途的。

“java nio socket的問題實例分析”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注創新互聯網站,小編將為大家輸出更多高質量的實用文章!

網頁題目:javaniosocket的問題實例分析
URL地址:http://vcdvsql.cn/article38/pejesp.html

成都網站建設公司_創新互聯,為您提供網站排名動態網站建站公司外貿建站網站營銷虛擬主機

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

小程序開發