3
下面是一個ChannelHandler
回聲服務器。netty如何確定讀取完成時的狀態?
Netty的框架將調用channelReadComplete()
方法通知處理程序,以channelRead()
的最後一次通話是在當前批次中的最後消息。
我的問題是,由於數據在樹幹上線轉移,怎麼會知道的Netty時a batch of message
完成?
下面是一個ChannelHandler
回聲服務器。netty如何確定讀取完成時的狀態?
Netty的框架將調用channelReadComplete()
方法通知處理程序,以channelRead()
的最後一次通話是在當前批次中的最後消息。
我的問題是,由於數據在樹幹上線轉移,怎麼會知道的Netty時a batch of message
完成?
一旦沒有更多數據要從底層傳輸中讀取,就會觸發channelReadComplete()。在談到SocketChannels這將是以下兩種情況:
謝謝。這些明確的規則比一些高水平的模糊描述要好。 – smwikipedia 2015-02-16 01:51:54
如果讀取了任何數據,我認爲channelReadComplete()也是由[Channel.read()](https://netty.io/4.0/api/io/netty/channel/Channel.html#read())觸發的,即使還有更多的數據需要從底層傳輸中讀取。 @Norman這是正確的嗎?如果是這樣,這種行爲背後的任何原因?謝謝! – Aaron 2016-11-15 04:25:17
是的,這是正確的... channelReadComplete()只是表示在當前的偶數循環運行中不會再有通道讀取。所以你可以例如現在刷新 – 2016-11-15 13:41:40