網路程式設計 NIO三大件及與BIO的區別

2021-10-04 22:20:19 字數 3222 閱讀 2680

二、channel

三、selector

四、bio與nio的區別

buffer本質上就是一塊記憶體區,可以用來寫入資料,實現子類有bytebuffer、charbuffer、doublebuffer、floatbuffer、intbuffer、longbuffer 和 shortbuffer。

優點:少一次記憶體拷貝,自己管理儲存,適合分配給占用記憶體大、壽命長的物件(網路傳輸、檔案讀寫)。注意:設定堆外記憶體大小限制(maxdirectmemorysize)

channel相比io中的stream更加高效,可以非同步雙向傳輸,但是必須和buffer一起使用。

public

class

noiserver

if(buffer.

position()

==0)//從buffer中讀取資料

buffer.

flip()

;byte

result=

newbyte

[buffer.

limit()

];buffer.

get(result)

; system.out.

println

("收到資料:"

+new

string

(result));

//響應資料

//包裝要傳送的資料

bufferedreader reader=

newbufferedreader

(new

inputstreamreader

(system.in));

system.out.

println

("請輸入傳送資訊:");

string mesage=reader.

readline()

; bytebuffer buffer = bytebuffer.

wrap

(mesage.

getbytes()

);while

(buffer.

hasremaining()

)//讀取響應

bytebuffer responsebuffer = bytebuffer.

allocate

(1024);

while

(channel.

isopen()

&&channel.

read

(responsebuffer)!=-

1)responsebuffer.

flip()

;byte

result=

newbyte

[responsebuffer.

limit()

];responsebuffer.

get(result)

; system.out.

println

("收到服務端資料:"

+new

string

(result));

}}

上述nio開發方式只是了解channel的使用,並不是nio開發方式。服務端讀取資料還是迴圈阻塞的,這時就要用到下乙個核心元件-selector

selector可以監聽channel通道,確定哪些通道準備好讀取和寫入工作,從而實現單個執行緒管理多個通道

//處理讀取事件

if(key.

isreadable()

)if(buffer.

position()

==0)//沒有資料

continue

; buffer.

flip()

;//轉換為讀取模式

byte

message=

newbyte

[buffer.

limit()

];buffer.

get(message)

; system.out.

println

("收到"

+clientchannel.

getremoteaddress()

+"資料:"

+new

string

(message));

//響應

string response=

"response message"

; bytebuffer bytebuffer = bytebuffer.

wrap

(response.

getbytes()

);while

(bytebuffer.

hasremaining()

)}catch

(ioexception e)

}//..其他事件,可提取成乙個個handler}}

uipath三大件介紹

實際上,這一套邏輯就是uipath rpa 平台三大產品的研發思路,也是整個rpa領域一套方 uipath rpa平台包括三大產品 uipath studio uipath robot uipath orchestrator。簡單對應。其中robot是機械人,studio是賦予智慧型的,orches...

UiPath的三大件分別是什麼以及三大件的作用

uipath的三大件分別是什麼以及三大件的作用 uipath rpa平台包括三大產品 uipath studio uipath robot和uipath orchestrator。簡單來說 其中robot是機械人 studio是賦予智慧型的,orchestrator是管理機械人的。具體來說 uipa...

電腦經常宕機 三大件過熱導致

電腦容易宕機,往往是由於硬體過熱造成的。遇到電腦宕機的故障,首先要看看cpu 記憶體 硬碟等三大件是否過熱。1.cpu過熱導致電腦宕機 cpu過熱可導致系統在執行時頻繁宕機。一般在cpu執行比較繁重的任務 比如玩3d遊戲 時,系統會突然出現宕機現象,此時無法正常關閉程式,只能重新啟動。這種宕機的出現...