NIO基本編寫

2022-09-23 12:09:08 字數 1565 閱讀 9686

一、編寫server端

1

public

class server implements

runnable catch

(ioexception e) 26}

2728

@override

29public

void

run()

51//

8 如果為可讀狀態

52if

(key.isreadable())

55//

9 寫資料

56if

(key.iswritable())

59//

key.isconnectable()60}

6162

}63 } catch

(ioexception e) 66}

67}6869

private

void

write(selectionkey key)

7374

private

void

read(selectionkey key)

88//

5 有資料則進行讀取 讀取之前需要進行復位方法(把position 和limit進行復位)

89this

.readbuf.flip();

90//

6 根據緩衝區的資料長度建立相應大小的byte陣列,接收緩衝區的資料

91byte bytes = new

byte[this

.readbuf.remaining()];

92//

7 接收緩衝區資料

93this

.readbuf.get(bytes);

94//

8 列印結果

95 string body = new

string(bytes).trim();

96 system.out.println("server : " +body);

9798

//9..可以寫回給客戶端資料

99 } catch

(ioexception e)

102103

}104

105private

void

accept(selectionkey key) catch

(ioexception e)

119}

120121

public

static

void

main(string args)

二、編寫client端

1

public

static

void

main(string args)

32 } catch

(ioexception e) finally

catch

(ioexception e) 41}

42}4344 }

Nio基本使用

io分為兩類,一類是檔案io,另一類就是網路io。jdk1.4新增了了nio,以往的io讀寫都是阻塞式的,如果io流中沒有可讀寫的資料時,那麼程式就會阻塞,知道有資料可以讀寫,效率低下。nio就是為了改善這種情況推出的。nio有兩個關鍵物件,乙個是channel,另乙個是buffer,channel...

nio基本使用

nio速度的提高來自於所使用的結構更接近於作業系統執行i o的方式 通道和緩衝器。我們可以把它想象成乙個煤礦,通道是乙個包含煤層 資料 的礦藏,而緩衝器則是派送到礦藏的卡車。卡車載滿煤炭而歸,我們再從卡車上獲得煤炭。也就是說,我們並沒有直接和通道互動,我們只是和緩衝器互動,並且把緩衝器派送到通道。通...

NIO學習一 NIO簡介

最近在學習nio,根據學習總結了一下,如果有不對的地方,請大佬指出。nio,就是new io,從jdk 1.4開始引入的新的api,它跟io的作用相同。它與傳統的io相比,有如下特性 1 nio是面向緩衝區的,io是面向流的。2 io是阻塞的操作,如果乙個io的read或者write沒有得到資料的時...