我如何找到(java)套接字仍然有效?

时间:2015-10-08 17:49:17

标签: java sockets

我通过套接字发送消息如下:

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()可用于确定写入成功或失败。

0 个答案:

没有答案