網絡通訊、NIO

#1、TCP、UDP、IP CP/IP協議棧主要分爲四層:應用層、傳輸層、網絡層、數據鏈路層,每層都有相應的協議,以下圖: 輸入圖片說明java

TCP協議是面向鏈接、保證高可靠性(數據無丟失、數據無失序、數據無錯誤、數據無重複到達)傳輸層協議。網絡

UDP協議也是傳輸層協議,它是無鏈接,不保證可靠的傳輸層協議。socket

#2、NIO Java NIO和IO之間的主要差異:線程

IO                NIO
面向流            面向緩衝
阻塞IO            非阻塞IO
無                選擇器

Java NIO: Channels and Buffers(通道和緩衝區)code

標準的IO基於字節流和字符流進行操做的,而NIO是基於通道(Channel)和緩衝區(Buffer)進行操做,數據老是從通道讀取到緩衝區中,或者從緩衝區寫入到通道中。server

Java NIO: Non-blocking IO(非阻塞IO)事件

Java NIO能夠讓你非阻塞的使用IO,例如:當線程從通道讀取數據到緩衝區時,線程仍是能夠進行其餘事情。當數據被寫入到緩衝區時,線程能夠繼續處理它。從緩衝區寫入通道也相似。圖片

Java NIO: Selectors(選擇器)ip

Java NIO引入了選擇器的概念,選擇器用於監聽多個通道的事件(好比:鏈接打開,數據到達)。所以,單個的線程能夠監聽多個數據通道。get

Java NIO系列文章:

  1. Java NIO概述

  2. Java NIO Channel

  3. Java NIO Buffer

  4. Java NIO Scatter / Gather

  5. Java NIO 通道之間的數據傳輸

  6. Java NIO Selector

  7. Java NIO FileChannel

  8. Java NIO SocketChannel

  9. Java NIO ServerSocketChannel

  10. Java NIO DataGramChannel

  11. Java NIO Pipe

  12. Java NIO 與IO

相關文章
相關標籤/搜索