2014-03-19 88 views
1

我是Java Socket編程和Netty的初學者。目前,我們有一個使用純Java Socket連接的應用程序,我們可以通過它來管理套接字的健康狀況。netty如何管理套接字的健康狀況

我想了解netty如何管理套接字? 港口將會開放多久? 如果套接字連接斷開會發生什麼?Netty如何維護tcp會話?

回答

3

關於管理底層的tcp套接字細節,Netty是完全透明的。

港口將被開放多久?

的Netty允許你設置SO_TIMEOUT通道上 - 這基本上是引發讀取超時警報一個tcp屬性,你可以編寫代碼來響應這個,如果你渴望這樣斷開連接。

ChannelOptions

如果套接字連接被刪除,會發生什麼?

如果您使用SimpleChannelUpstreamHandler,那麼它的channelDisconnected(ChannelHandlerContext ctx, ChannelStateEvent e)將被調用。

SimpleChannelUpstreamHandler

如何Netty的是保持TCP會話?

不確定你的意思,但它基本上是一個tcp協議中使用的機制。

+0

SO_TIMEOUT是讀取超時。它不會導致連接被丟棄,Netty無論如何都不會觀察到它,因爲它處於非阻塞模式。 – EJP

+0

@EJP - 糾正自己。感謝您指出。如果有人願意使用,Netty也有一個阻塞模式。 – Bhaskar

+0

SO_TIMEOUT僅適用於OIO傳輸,Netty不會因此而關閉連接或引發任何異常或警報。 – trustin

相關問題