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