Java Socket中服务器断开后,客户端为什么没有抛异常?
发布网友
发布时间:2022-05-05 02:11
我来回答
共1个回答
热心网友
时间:2022-06-28 13:36
在客户端退出之后,会出现socket连接中断,此时是会抛出异常,在抛出异常时打印中断的客户端即可。
1. while(Binput.read()!= -1) 这种方法能判断出客户端输入是否为空,客户端断开能跳出死循环,但是得到的数据却从第二个开始了,所以这方法不适宜。
2. 在死循环中加入以下代码:
try {
socket.sendUrgentData(0);
} catch (IOException e) {
done= false; //如果抛出了异常,那么就是断开连接了 跳出无限循环
}追问现在是这样的,我客户端要能快速的知道我被服务器断开,或者是服务器端异常关闭后,我要知道我跟服务器已断开,我客户端是Java,服务器是其他语言。Java必须是通过发送发数据才能检测与服务器是否断开吗,我看其他语言是只要一端断开,另一端会马上知道的啊。