2011-03-28 18 views
0

我已经在java中创建了一个TCP服务器客户端应用程序,它们之间交换周期性消息。 作为故障管理的一部分,我需要检测主机/客户端的故障,然后调用我的自定义功能。 Java中的哪个异常会捕获这部分内容? SocketException会在这里工作吗?我只想在主持人/客户端关闭而不是其他任何问题时调用失败管理。用于检测主机/接收器的异常已经停止/失败?

回答

2

您需要区分服务器故障(正在关机,导致出现IOException),当您启动连接(ConnectException)时服务器不可用,并且服务器脱机(想象网络电缆被拔出)。这通常会以SocketTimeoutException或类似的形式表现出来。

我会运行一个过程并尝试所有您希望处理的场景。你必须以不同的方式处理超时,以明确断开连接等。