最近在开发中遇到一个问题就昰如何判断远端服务器是否已经断开连接,如果断开那么需要重新连接
然后想到是否可以通过OutputStream发送一段测试数据,如果发送失败就表示遠端已经断开连接类似ping,但是这样会影响到正常的输出数据远端无法把正常数据和测试数据分开。
最后又回到socket类发现有一个方法sendUrgentData,查看文档后得知它会往输出流发送一个字节的数据只要对方Socket的SO_OOBINLINE属性没有打开,就会自动舍弃这个字节而SO_OOBINLINE属性默认情况下就是关闭的,呔好了正是我需要的!
java socekt 同步套节字编程主要用到java.net.Socket类,通常情况下我们需要socket的长连接模式其次就是在连接的另一电脑无端端断网开之后需要及时响应。
对于连接的判断socket提供的isClosed,isConnected等都是判断本地套节字的状态。要判断运程的连接可以通过发送紧急数据来判断,紧急数据发送成功与否就表示远程是否断开。