社区
通信技术
帖子详情
java Socket通信心跳包的断开问题
wxjs360
2017-07-17 11:39:53
下面是我新建的一个socket、连接然后每隔10秒给服务端发送心跳数据
下图是服务端那边因主动或者异常关闭之后,我这边还继续发送了心跳数据而产生的异常。不知道如何解决因异常断开之后,如何重启这个socket问题,又没有会的大神帮小弟解决,在线等,谢谢了!
...全文
1498
12
打赏
收藏
java Socket通信心跳包的断开问题
下面是我新建的一个socket、连接然后每隔10秒给服务端发送心跳数据 下图是服务端那边因主动或者异常关闭之后,我这边还继续发送了心跳数据而产生的异常。不知道如何解决因异常断开之后,如何重启这个socket问题,又没有会的大神帮小弟解决,在线等,谢谢了!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
weixin_39985901
2017-11-10
打赏
举报
回复
keepThread和recvThread这两个类怎么实现的
RKGG爱吃鱼
2017-10-13
打赏
举报
回复
楼主,在Android中,彻底关闭应用后,心跳连接还存在,怎么断开啊?
wxjs360
2017-09-06
打赏
举报
回复
成改好了。就是做个简单的改动,可以看下事例代码 public FullDuplexClientDemo(String ip) { try { // socket = threadConnect.get(); // if (socket == null) { socket = new Socket(ip,Integer.valueOf(ConfigUtils.properties.getProperty("CRScannerPort"))); // threadConnect.set(socket); if (tKeep.isAlive() == false && tRecv.isAlive() == false ) { tKeep.start(); tRecv.start(); } // } outStr = socket.getOutputStream(); inStr = socket.getInputStream(); islive = true; } catch (Exception e) { e.printStackTrace(); new WarningDialog(MessageResource.getMessage("MainFrame.TabbedPane.Error", Language.getLocale())+"-Err1007"); socket= null; }
微微一笑满城空
2017-08-29
打赏
举报
回复
楼主弄出来没?让咱也参考下下...
wxjs360
2017-07-24
打赏
举报
回复
谢谢了,我只是了解一个思路的,不用麻烦你坐其他的。我先用你这个思路做一下看看
X-i-n
2017-07-24
打赏
举报
回复
直接放图你是想让别人帮你把所有代码再敲一遍吗?还是截图,保存,修改,再上传? try里,第一句去掉,外层的if判断也去掉,直接跑if里面的代码就行。原来的代码只有在new threadConnect对象的时候才会new socket,断开重连的时候,先会获取threadConnect对象的socket,这个socket哪怕断开,仍然是一个存在的对象,永远不会等于null,所以if里的new socket永远不会执行。 手工设置socket=null也可以,但是正确方法应该是threadConnect.set(null)(前提是set方法不对传入的参数做null判断),而不是socket = null。
wxjs360
2017-07-24
打赏
举报
回复
我不清楚那个socket断开之后,为什么getlocal还是原来的那个通信?
我尝试过close,也尝试过socket=null,但是debug看程序的时候不管异常端还是我close,get出来的都是第一次建立的那个连接,不让我重新new。这点我是不能理解,麻烦帮我解释下,谢谢
X-i-n
2017-07-19
打赏
举报
回复
socket对象没有必要复用,每次new client的时候,不用判断if(socket==null),直接new一个socket出来。
wxjs360
2017-07-18
打赏
举报
回复
这位大哥,你说的两种方法确实是两种需求(我两种需求都可行),但是我的问题是socket,close掉之后,我在重新new一个通信客户端类会出现socket已经关闭的异常。不断重新尝试连接会出现我那个IO流通道中的异常,是通信已经断开了,我没有及时监测到还在往服务端发送东西,就会出现问题。这是困扰我的问题,并不是需求问题,这两个放法我都试过,就是没能解决这个问题
X-i-n
2017-07-17
打赏
举报
回复
需求是什么,服务器断开以后,你想怎么处理? 可以在检测到异常断开以后不断重新尝试连接,也可以直接close这个socket,这取决于你的业务。
c#编写的基于
Socket
的异步
通信
系统封装DLL--SanNiuSignal.DLL
SanNiuSignal是一个基于异步
socket
的完全免费DLL;它里面封装了Client,Server以及UDP;有了这个DLL;用户不用去关心心跳;粘包 ;组包;发送文件等繁琐的事情;大家只要简单的几步就能实现强大的
通信
系统;能帮助到...
java
socket
编程心跳_
Java
Socket
编程
心跳包
创建实例解析
1.什么是
心跳包
?
心跳包
就是在客户端和服务器间定时通知对方自己状态的一个自己定义的命令字,按照一定的时间间隔发送,类似于心跳,所以叫做
心跳包
。用来判断对方(设备,进程或其它网元)是否正常运行,采用定时发送...
java
socket
心跳包
_
socket
中的短连接与长连接,
心跳包
示例详解
TCP连接简介当网络
通信
时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接,连接的建立是需要三次握手的,而释放则需要4...
Java
Socket
通信
及
心跳包
最近android项目中有需要用到
Socket
与服务器连接的项目,自己之前没有使用过
Socket
套接字这种方案,所以对
Socket
通信
机制就是个也很有限,领导在会议上讲
Socket
通讯呢就是客户端和服务器端先进行一次握手,双方同意...
java
web
socket
心跳包
_web
socket
心跳包
的实现方案
web
socket
心跳包
的实现方案05/30/2010现在网络环境错综复杂,
socket
心跳包
是获得健康强壮的连接的有效解决方案,今天,我们就在web
socket
中实现
心跳包
方案,是的,尽管我们只是做一个简单的聊天室,但我们让他...
通信技术
4,356
社区成员
28,926
社区内容
发帖
与我相关
我的任务
通信技术
通信技术相关讨论
复制链接
扫一扫
分享
社区描述
通信技术相关讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章