基于Socket的通信,在建立连接后,如果一段时间内彼此没有数据交换,通信的双方终端需要判断对方是否处于活跃状态。TCP提供了一种Keep-Alive机制,在经过一段时间不活动后,将向另一个终端发送一个探测消息。如果另一个终端还处于活跃状态,则返回一个确认消息。在经过几次探测后,都没有从另一个终端获得确认消息,则该终端会关闭套接字,并在下一次尝试I/O操作时抛出一个异常。这里需要注意的是,应用程序只有在探测消息失败时才能发现Keep-Alive机制的工作。

Socket: Keep-Alive

通过boolean getKeepAlive();方法获取Keep-Alive机制是否开启;

通过void setKeepAlive(boolean on);方法设置Keep-Alive机制;