1.客戶端關閉 的時候會拋異常 ,死迴圈
int read = channel.read(buffer)
if(read>0)else{
客戶端關閉
key.cancel();//登出當前key
2.selector.select(); 阻塞 ,為什麼說nio 是非阻塞的io
selector.select();
selector.select(1000); 不阻塞
selector.wakeup(); 可也以喚醒selector
3. selectionkey.op_write 表示底層緩衝區域是否有空間,是則相應返回true op_write
NIO網路程式設計
nio buffer陣列緩衝區 獲取物件 allocate int capacity allocatedirect int capacity wrap byte byte 常用方法 put 新增元素 capacity 容量 陣列的大小 position 位置 要存放元素位置,每操作乙個元素,位置就會...
Nio程式設計詳解
nio程式設計 1.傳統的網路程式設計 在tcp協議中,呼叫accept函式時,會阻塞在那裡,而且每次都需要建立乙個新的執行緒來處理該連線,用這種方式當連線數較多時會產生大量的執行緒,而執行緒之間的切換需要耗費資源,上限較低。2.所以我們需要引入nio 非阻塞io程式設計 nio程式設計的實現方式 ...
網路程式設計 NIO基礎
nio核心元件 1 buffer緩衝區 buffer工作原理 bytebuffer的簡單使用 通過下面這個簡單 可以深入理解上面三個引數在每次讀或寫之後的變化 public class bufferdemo ps 關於bytebuffer 2 channel通道 客戶端socketchannel 伺...