日期:2014-05-20  浏览次数:20716 次

Java TCP
如何在客户端判断服务器端已经关闭,这样客户端不再向服务器端发送东西,要不然会报错
Java TCP/IP 服务器

------解决方案--------------------
我之前用java的Serversocket(就利用TCP)做过一个上传下载的程序,如果你服务端关了,客户端会自动报错java.net.SocketException: Connection reset,如果你继续向服务端发东西就会报
java.net.SocketException: Connection reset by peer: socket write error。

或者你可以这样做,可以在服务端关闭前做一个广播告诉所有在线客户端,服务端即将关闭让所有客户端断开连接,当客户端收到广播后再发送一个消息回服务端确认收到命令,就断开与服务端的连接,服务端确认收到所有客户端回应后就关闭,如果没有收到所有客户端回应就再一次进行广播,当收到所有回应后就可以关闭了!
------解决方案--------------------
双方互传心跳,一段时间没有收到心跳就表示对方已经关闭