2014-03-19 45 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

相关问题