我通过套接字发送消息如下:
socket = new Socket(serverAddr, SERVERPORT);
PrintWriter out = new PrintWriter(new BufferedWriter(
new OutputStreamWriter(socket.getOutputStream())),
true);
out.println(str);
但是一段时间后消息没有被传递,并且没有抛出异常(socket.isClosed,socket.isBound - 都返回true。)。如何才能找到套接字是否还活着?
其他信息
每当服务器套接字(接收器)重新启动时,客户端套接字(发送方)就会变得陈旧 - 但是当通过这个陈旧的客户端套接字发送消息时它们没有异常(它们只是丢失了)。
那么,我如何在发送方检测到Client Socket是陈旧的,以便我可以启动重新连接?
解决方案
PrintWriter的checkError()可用于确定写入成功或失败。