您的位置:首页 > 编程语言 > Java开发

异常:java.net.SocketException: Method sendUrgentData() is not supported

2017-06-21 19:19 483 查看
Runnable keepBeatingRunnable=new Runnable() {
@Override
public void run() {
while (isConnected){
System.out.println("心跳开始");
try{
Thread.sleep(10000);
System.out.println("心跳开始2");
sslSocket.sendUrgentData(0xFF);
System.out.println("发送心跳包");
}catch (Exception e){
isConnected=false;
System.out.println("心跳开始3");
e.printStackTrace();
//sendJsonMsg(MessageTool.mkOfflienJSMsg(userID,getMID()));
}
System.out.println("心跳开始4");
}
}
};

输出异常:



查了一下API:



SslSocket从Socket继承了这个方法,然而并不能实现。

我的解决方法是依赖keepalive方法,但是这个时间间隔又特别长。

查了一下似乎找不到可以有效更改这个时间的方法,至少在SSLSocket住上是不行的,大部分都是Method is not support。

最后我自己写了个心跳线程,很是蛋疼。这个问题先Mark,以后解决了再来处理。

public void run(){
while (!ConnectionOver){
try{
//System.out.println("BEATING Start");
sendBeat();
Thread.sleep(1000*60);
}catch (Exception e){
ConnectionOver=true;
e.printStackTrace();
}
}
//System.out.println("BEATING over");
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐