我正在开发一个基于 GUI 和数据库的 Java 多客户端服务器程序。客户端对程序的要求是确保始终与服务器建立连接,如果连接丢失(服务器关闭/套接字或流问题),则应通知它。
换句话说,我需要一个解决方案来持续检查与服务器的连接。
最好的方法是什么?
TCP/IP 中没有这样的 API。在 TCP 中检测连接失败的唯一方法是尝试使用它。您可能会考虑在协议中添加心跳,但最好与客户端人员一起查看要求。TCP/IP 在设计上没有“拨号音”,在应用程序级别添加一个不重要的、容易出错的,并且会带来时间和空间开销。
实施心跳协议...
如果您不这样做,则可以使用连接侦听器线程
Socket.isConnected
检查套接字连接是否关闭。
if(Socket.isClosed()) {
//reconnect or alert the user
} //end if