-
wangluo 編程
查看全部 -
NIO編程實現(xiàn)步驟
第一步:創(chuàng)建Selector
第二步:創(chuàng)建ServerSocketChannel,并綁定監(jiān)聽端口
第三步:將Channel設置為非阻塞模式
第四步:將Channel注冊到Selector上,監(jiān)聽連接事件
第五步:循環(huán)調用Selector的select方法,監(jiān)測就緒情況
第六步:調用selectedKeys方法獲取就緒的channel
第七步:判斷就緒事件種類,調用業(yè)務處理方法
第八步:根據(jù)業(yè)務需要決定是否再次注冊監(jiān)聽事件,重復執(zhí)行第三步操作
查看全部 -
Selector 選擇器/多路復用器
作用:I/O就緒選擇
地位:NIO網(wǎng)絡編程的基礎
SelectionKey提供四個常量值
連接就緒?connect
接受就緒 accept
讀就緒?read
寫就緒?write
查看全部 -
selector核心API
查看全部 -
flip ()方法將buffer從寫模式切換為讀模式,此時position變?yōu)?,limit?變?yōu)閯偛诺膒osition
get()方法是讀取一個字節(jié),此時position移動到1的位置
mark()方法記錄當前position的位置
reset()方法是將position置為mar()標記的位置
clear()方法將positon,limit,capacity重置
查看全部 -
寫入時,用到limit,capacity,position,mark。 讀取時,用到limit,capacity,position。查看全部
-
客戶端實現(xiàn)步驟
查看全部 -
NIO服務端1234
查看全部 -
SelectionKey提供四個常量值
連接就緒?connect
接受就緒 accept
讀就緒?read
寫就緒?write
查看全部 -
selector核心API
查看全部 -
Selector?叫做選擇器或者多路復用器,Selector能夠檢測1到多個NIO通道,并能夠知曉通道是否為諸如讀寫事件做好準備的組件,通過Selector,一個單獨的線程就可以管理多個Channel,從而管理多個網(wǎng)絡連接
查看全部 -
flip ()方法將buffer從寫模式切換為讀模式,此時position變?yōu)?,limit?變?yōu)閯偛诺膒osition
get()方法是讀取一個字節(jié),此時position移動到1的位置
mark()方法記錄當前position的位置
reset()方法是將position置為mar()標記的位置
clear()方法將positon,limit,capacity重置
查看全部 -
ByteBuffer.allocate(10),初始化Buffer
查看全部 -
Channel特點:
即可讀又可寫
非阻塞
只能操作buffer
Channel實現(xiàn):
文件類:FileChannel
UDP類:DatagramChannel
TCP類:ServerSocketChannel/SocketChannel
Socket?通過ServerSocket和Socket
查看全部 -
NIO網(wǎng)絡模型
服務端Selector:負責監(jiān)聽新連接的接入,或者某個連接有可讀可寫的消息,一旦監(jiān)聽到,就會調用對應的事件處理器來?完成對事件的響應
Acceptor可以一次處理多個請求。
查看全部
舉報