java 长连接正常交易发送信息不跑心跳怎么实现?
2个回答
展开全部
不跑心跳?你指的是不定时发送心跳包。那是很难保证长连接的(特别是在互联网环境下),除非信息交往非常密集。TCP连接本身是长连接,不会自己断开,但会因:网络故障、防火墙、智能网络设备、等各种原因断开。心跳包主要是来通知这些智能设置,我还活着,不要把我断开。
更多追问追答
追问
是这样的,交易过来就发交易包,距离上次交易之后多长时间没有交易发生就发心跳包,保持连接。现在就起发送交易包和心跳包是分两个线程还是一个线程里写好?这块有点乱。
追答
是否用同个线程,主要看你代码怎么写容易点。你可以专门开个线程发心跳包。也可以用同一个线程,可以利用socket.setSoTimeout()方法来设置读取超时,也就是超过一定时间没收到数据就发送一个心跳包。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询