搜索

java中怎么判断socket是否连接成功

发布网友 发布时间:2022-04-20 07:06

我来回答

1个回答

热心网友 时间:2023-07-10 04:33

工程里遇到了需要判断Socket是否已经关闭的问题,使用
public boolean isAlive(){ if(mSocket.equals(null)||mSocket.isClosed()||!mSocket.isConnected()||mSocket.isInputShutdown()||mSocket.isOutputShutdown()){ MyLog.d("mSocket.isConnected()"+mSocket.isConnected()); return false; }else{ MyLog.d("mSocket.isConnected()"+mSocket.isConnected()); return true; } } 毫无作用,随后查看了网上先关解决办法,发现Socket中有一个方法void sendUrgentData(0xFF)当对方SO_OOBINLINE属性没有打开时,就会自动舍弃这个字节,而SO_OOBINLINE属性默认情况下就是关闭的,但是只要能够发送到对方Socket,sendUrgentData(0xFF)方法就不会报错,只要catch一下IOException就OK了,当对方关掉了Socket之后就会进入catch,问题迎刃而解。
try{ mSocket.sendUrgentData(0xFF); }catch(IOException e){ Log.d(e+":要关掉了阿 !"); mSocket.close(); } 当socket断掉之后,抛出java.net.socketexception broken pipe异常,没有问题。
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
Top