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.獲取客戶端輸入流...