Java Socket中服务器断开后,客户端为什么没有抛异常?

当服务器主动断开后,客户端不是应该收到信息或者异常的吗,为什么我的客户端没有收到呢,客户端应该怎么实现才能在服务器断开后,客户端马上知道,服务器已断开。

在客户端退出之后,会出现socket连接中断,此时是会抛出异常,在抛出异常时打印中断的客户端即可。
1. while(Binput.read()!= -1) 这种方法能判断出客户端输入是否为空,客户端断开能跳出死循环,但是得到的数据却从第二个开始了,所以这方法不适宜。
2. 在死循环中加入以下代码:
try {
socket.sendUrgentData(0);
} catch (IOException e) {
done= false; //如果抛出了异常,那么就是断开连接了 跳出无限循环
}追问

现在是这样的,我客户端要能快速的知道我被服务器断开,或者是服务器端异常关闭后,我要知道我跟服务器已断开,我客户端是Java,服务器是其他语言。Java必须是通过发送发数据才能检测与服务器是否断开吗,我看其他语言是只要一端断开,另一端会马上知道的啊。

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答