我使用的是netty 3.6.6。直接調用close()和使用ChannelFutureListener的差別.CLOSE
有人可以解釋下面兩個代碼之間的區別嗎?
channel.close();
channel.write(ChannelBuffers.EMPTY_BUFFER).addListener(ChannelFutureListener.CLOSE);
當我用1號,我發現網狀發送TCP FIN 發送之前我寫的所有數據包。 因此,客戶端不能發送所有的數據包服務器。 但我找不到2號的問題。
我不明白爲什麼沒有1出現問題。有什麼區別?
在此先感謝。
這是正確的。直接調用channel.close()會立即關閉通道,而在特定寫入完成時添加監聽器會關閉通道。前者失敗,因爲在寫入完成之前通道已關閉,這是提供偵聽器方法的原因。 –
謝謝!他們彼此絕對不同。 – oshu