java nio Selector的使用 客戶端

2021-09-12 04:49:02 字數 873 閱讀 9808

第一步:註冊,並註冊connect事件。

if(selector == null)

selector = selector.open();

socketchannel channel = socketchannel.open();

channel.configureblocking(false);

channel.connect(new inetsocketaddress("localhost", 1234));

channel.register(selector, selectionkey.op_connect);

第二步:處理connect事件

//連線事件

if(key.isconnectable())

第三步:處理read事件

if(key.isreadable()) 

bytebuffer.flip();

filechannel.write(bytebuffer);

}

這樣,整個客戶端就完成了,在執行時,我同時啟用10個執行緒來向伺服器端讀同乙個檔案,並儲存為不同的檔案備份,以達到模擬資料傳輸的功能。如下所示:

executorservice executorservice = executors.newsinglethreadexecutor();

for(int i = 0; i < 10; i++)

executorservice.shutdown();

整個selector僅是乙個作為練習用的小例子,如果用在實際**中,還需要處理不同的異常和相應的邏輯等。對於學習還是有一定的幫助的。希望對你有用。

springcloud配置倉庫的使用 客戶端

在上一章中我們借助github配置了乙個springcloud config server專案,他的作用是為其餘微服務提供配置方便管理 上一章本例子源 服務端例子 客戶端例子 倉庫位置 倉庫裡面沒內容的 這一章講的是如何配置客戶端 首先新建乙個專案 或者在需求的專案上新增 pop.xml org.s...

Nacos Config 客戶端的使用

此處我們以之前建立的服務提供者專案為例 在pom.xml中增加org.springframework.cloud spring cloud starter alibaba nacos config依賴 org.springframework.cloud spring cloud starter al...

GitHub的基本使用ssh key的客戶端配置

前期準備 擁有乙個git賬號 想要讓本地版本庫與遠端版本庫通訊,需要配置下ssh key,操作如下 cd ssh ssh keygen t rsa c your email youremail.com 引號裡面換成自己的註冊郵箱 一路按回車 注意中途讓輸入密碼也不要輸入,不然之後git clone的...