從 BIO、NIO 到 Netty【前置知識點】
? 關於 I/O 模型、同步/非同步、阻塞/非阻塞等的相關詳細解釋,大家可以去看 ? 本倉庫中 Java基礎 部分的 【底層:Linux 五種 I/O 模型詳解】
1. BIO
① 傳統的阻塞式通訊流程
早期的 Java 網路相關的 API(java.net
包) 使用 Socket(套接字)進行網路通訊,不過只支援阻塞函式使用。
要通過網際網路進行通訊,至少需要一對套接字:
- 執行於伺服器端的 Server Socket。
- 執行於客戶機端的 Client Socket
Socket 網路通訊過程簡單來說分為下面 4 步:
- 建立服務端並且監聽客戶端請求
- 客戶端請求,服務端和客戶端建立連線
- 兩端之間可以傳遞資料
- 關閉資源
對應到服務端和客戶端的話,是下面這樣的。
伺服器端:
- 建立
ServerSocket
物件並且繫結地址(ip)和埠號(port):server.bind(new InetSocketAddress(host, port))
- 通過
accept()
方法監聽客戶端請求 - 連線建立後,通過輸入流讀取客戶端傳送的請求資訊
- 通過輸出流向客戶端傳送響應資訊
- 關閉相關資源
客戶端:
相關文章
- 從BIO和NIO到Netty實踐Netty
- Java 反射【前置知識點】Java反射
- Netty-BIO、NIO、AIO、零複製-2NettyAI
- BIO、NIO、AIOAI
- BIO到NIO原始碼的一些事兒之BIO原始碼
- pwn前置知識
- JUC前置知識
- Netty知識點(雜記)Netty
- Java BIO,NIO,AIOJavaAI
- 從《一兆遊戲》學到的知識點遊戲
- BIO到NIO原始碼的一些事兒之NIO 中原始碼
- BIO到NIO原始碼的一些事兒之NIO 上原始碼
- Java IO學習筆記五:BIO到NIOJava筆記
- Web前置知識(1)Web
- java BIO、NIO學習Java
- BIO,NIO,AIO概覽AI
- BIO、NIO的區別
- NIO、BIO、AIO區別AI
- From BIO to NIO series —— BIO source code interpretation
- 網路程式設計NIO:BIO和NIO程式設計
- 域滲透前置知識
- vue面試題(前置知識)Vue面試題
- java BIO/NIO/AIO 學習JavaAI
- BIO、NIO、AIO的區別AI
- BIO到NIO原始碼的一些事兒之NIO 下 之 Selector原始碼
- Java雜記10—BIO,BIO和NIO的區別Java
- From BIO to NIO —— NIO source code interpretation 1
- SpringBoot系列-前置知識Spring Boot
- BIO到NIO原始碼的一些事兒之NIO 下 Buffer解讀 下原始碼
- BIO到NIO原始碼的一些事兒之NIO 下 Buffer解讀 上原始碼
- 從零開始netty學習筆記之BIONetty筆記
- NIO、BIO、AIO 與 PHP 實現AIPHP
- BIO、NIO、多路複用IO、AIOAI
- 前置知識—程式和執行緒執行緒
- ava 集合 | 紅黑樹 | 前置知識
- Netty - 眼熟NIONetty
- java NIO和Concurrent包的一些知識點Java
- 從聲學智慧到智慧助手,你需要Get哪些知識點?