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