假设在linux上通过杀进程的方式停止socketserver的运行,那么在杀进程前已经建立的socket连接如何判断其已经失效了?
此时判断isClosed为false,isBound和isConnected都是true,而且通过sendUrgentData的方式验证,在windows系统下会抛出异常,可以断定失效,但是在linux下无异常,没办法判断连接失效?想知道在linux下如何判读啊?
测试代码:
Socket socket = new Socket("172.16.132.189", 5656);
socket.setSoTimeout(3000);
LOG.info("--wait--");
LOG.info("--do--");
LOG.info("--isClosed--"+socket.isClosed());
LOG.info("--isBound--"+socket.isBound());
LOG.info("--isConnected--"+socket.isConnected());
socket.sendUrgentData(0xff);
socket.close();
LOG.info("--over--");
在执行到LOG.info("--wait--")的时候通过杀进程的方式将sockerserver关闭