永发信息网

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

答案:1  悬赏:30  手机版
解决时间 2021-11-25 02:34
  • 提问者网友:绫月
  • 2021-11-24 08:40
Java Socket中服务器断开后,客户端为什么没有抛异常?
最佳答案
  • 五星知识达人网友:醉吻情书
  • 2021-11-24 09:17
在客户端退出之后,会出现socket连接中断,此时是会抛出异常,在抛出异常时打印中断的客户端即可。
1. while(Binput.read()!= -1) 这种方法能判断出客户端输入是否为空,客户端断开能跳出死循环,但是得到的数据却从第二个开始了,所以这方法不适宜。
2. 在死循环中加入以下代码:
try {
socket.sendUrgentData(0);
} catch (IOException e) {
done= false; //如果抛出了异常,那么就是断开连接了 跳出无限循环
}追问现在是这样的,我客户端要能快速的知道我被服务器断开,或者是服务器端异常关闭后,我要知道我跟服务器已断开,我客户端是Java,服务器是其他语言。Java必须是通过发送发数据才能检测与服务器是否断开吗,我看其他语言是只要一端断开,另一端会马上知道的啊。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯