【對線面試官】Java NIO
阿新 • • 發佈:2021-01-11
![](https://tva1.sinaimg.cn/large/0081Kckwly1gm2ibfwu39j30ku112dk0.jpg)
![](https://tva1.sinaimg.cn/large/0081Kckwly1gm2if0fr9nj30ku112wj8.jpg)
![](https://tva1.sinaimg.cn/large/0081Kckwly1gm2igjspsmj30ku112jwk.jpg)
![](https://tva1.sinaimg.cn/large/0081Kckwgy1gm2ihvp3qvj30ku112n4k.jpg)
![](https://tva1.sinaimg.cn/large/0081Kckwgy1gm2ik8fbryj30ku11279k.jpg)
服務端:
```java
public class NoBlockServer {
public static void main(String[] args) throws IOException {
// 1.獲取通道
ServerSocketChannel server = ServerSocketChannel.open();
// 2.切換成非阻塞模式
server.configureBlocking(false);
// 3. 繫結連線
server.bind(new InetSocketAddress(6666));
// 4. 獲取選擇器
Selector selector = Selector.open();
// 4.1將通道註冊到選擇器上,指定接收“監聽通道”事件
server.register(selector, SelectionKey.OP_ACCEPT);
// 5. 輪訓地獲取選擇器上已“就緒”的事件--->只要select()>0,說明已就緒
while (selector.select() > 0) {
// 6. 獲取當前選擇器所有註冊的“選擇鍵”(已就緒的監聽事件)