我在java中创建了一个TCP服务器客户端应用程序,它们在它们之间交换定期消息。 作为故障管理的一部分,我需要检测主机/客户端的故障,然后调用我的自定义功能。 Java中的哪个例外只会抓住这一部分? SocketException会在这里工作吗?我想仅在主机/客户端关闭时才调用故障管理,而不是在任何其他问题上。
答案 0 :(得分:2)
您需要区分服务器关闭(关闭,导致IOException),服务器在您启动连接时不可用(ConnectException),以及服务器脱机(想象一下网络电缆被拔出)。这通常表现为SocketTimeoutException或类似。
我会运行一个进程并尝试所有你希望处理的场景。您必须以不同的方式处理超时以显式断开连接等。