NIO網路程式設計

2021-10-05 04:25:09 字數 1042 閱讀 1891

nio

buffer陣列緩衝區

獲取物件

allocate(int capacity)

allocatedirect(int capacity)

wrap(byte byte)

常用方法

put 新增元素

capacity 容量 陣列的大小

position 位置 要存放元素位置,每操作乙個元素,位置就會往後移動一下

limit 限制 從limit開始後面的元素不能被操作

mark 標記 如果呼叫reset() position會回到mark的位置

clear 還原 把所有的指標都還原到預設值

flip 切換 1.把limit設定到當前position地方

2.把position設定成0

3.消除標記

channel通道

通道相當於是流,可以做讀取和寫出。

分類filechannel 檔案

datagramchannel udp

socketchannel tcp的客戶端

serversocketchannel tcp的伺服器端

高效複製裡面的分塊方式

nio網路程式設計

serversocketchannel

socketchannel

客戶端和伺服器端資料的傳送接收

伺服器端accept方法設定非阻塞

configureblocking(false);

非阻塞的意思是讓伺服器別一直等待。

測試案例:

服務端**:

public class server 

}

客戶端**:

public class client 

}

執行後服務端的控制台列印:

連線成功

網路程式設計 NIO基礎

nio核心元件 1 buffer緩衝區 buffer工作原理 bytebuffer的簡單使用 通過下面這個簡單 可以深入理解上面三個引數在每次讀或寫之後的變化 public class bufferdemo ps 關於bytebuffer 2 channel通道 客戶端socketchannel 伺...

NIO程式設計

1.客戶端關閉 的時候會拋異常 死迴圈 int read channel.read buffer if read 0 else 客戶端關閉 key.cancel 登出當前key 2.selector.select 阻塞 為什麼說nio 是非阻塞的io selector.select selector...

IO與NIO網路程式設計模型

一 bio bolcking io 阻塞分析 阻塞點 1.建立服務埠 serversocket serversocket new serversocket 12345 獲取socket套接字 socket socket serversocket.accept 阻塞等待客戶端連線 2.獲取客戶端輸入流...