讀
:磁碟 --> filechannel#read–>bytebuffer(變數)
寫
:bytebuffer(變數)–>filechannel#write–>磁碟
唯讀filechanel
: fileinputstream#getchannel();
可寫filechanel
: fileoutputstream#getchannel();
bytebuffer常見操作
;//建立bytebuffer
bytebuffer buffer=bytebuffer.
allocate
(1024);
while
(true
)infilechannel.
close()
;outfilechannel.
close()
;網路bio網路程式設計
、nio網路程式設計
nio
//1.建立serversocket
serversocket ss=
newserversocket()
;//2.繫結監聽埠
ss.bind
(new
inetsocketaddress
(9999))
;//3.等待請求到來 **新的socket
system.out.
println
("我在9999等待...");
socket socket = ss.
accept()
;//4.獲取意圖
inputstream is = socket.
getinputstream()
;inputstreamreader isr=
newinputstreamreader
(is)
;bufferedreader br=
newbufferedreader
(isr)
;stringbuilder sb=
newstringbuilder()
;string line=null;
while
((line=br.
readline()
)!=null)
system.out.
println
("伺服器收到:"
+sb.
tostring()
);//4.給出響應
outputstream os = socket.
getoutputstream()
;printwriter pw=
newprintwriter
(os)
;pw.
println
(new
date()
.tolocalestring()
);pw.flush()
;//5.告知客戶端寫結束
socket.
shutdownoutput()
;//6.釋放socket資源
socket.
close()
;
nio
//1.建立serversocket
serversocketchannel ssc= serversocketchannel.
open()
;//2.繫結監聽埠
ssc.
bind
(new
inetsocketaddress
(9999))
;//3.設定通道非阻塞
ssc.
configureblocking
(false);
//4.建立selector 通道選擇器
selector selector= selector.
open()
;//5.註冊通道事件
ssc.
register
(selector, selectionkey.op_accept)
;while
(true
)else
if(key.
isreadable()
)//註冊寫
sc.register
(selector,selectionkey.op_write,baos);}
else
if(key.
iswritable()
)//移除事件
iterator.
remove()
;}
RPC的概念與實現
rpc全稱為remote procedure call,俗稱遠端過程呼叫。rpc是一種程式設計模型,程式設計思路,它的出現是為了解決分布式服務 微服務 架構中,不同服務之間方便且高效呼叫 的問題,遠端呼叫時,要能夠像本地呼叫一樣方便,讓呼叫者感知不到遠端呼叫的邏輯。rpc 與 restful 1 r...
RPC實現原理
rpc remote procedure call 遠端過程呼叫,是乙個計算機通訊協議。該協議允許執行於一台計算機的程式呼叫另一台計算機的子程式,而程式設計師無需額外地為這個互動作用程式設計。兩個或多個應用程式都分布在不同的伺服器上,它們之間的呼叫都像是本地方法呼叫一樣,如下圖。阿里的dubbo g...
實現RPC框架
什麼是rpc client端 student student call serveraddr,addage,student 1.將這個呼叫對映為call id。2.將call id,student params 序列化,以二進位制形式打包 3.把2中得到的資料報傳送給serveraddr,這需要使用...