TCP通信客户端Socket 心跳线程的实现
如果自己去实现心跳功能其实最土的办法是隔一定时间向服务端发送一个心跳包,然后服务端如果收到了,服务端就发送一个响应信号,如果客户端在一定的时间间隔内取得了这个响应,那么连接是正常的,如果没有取得,那么重连这个socket.
我想如果JDK已经实现了这个功能的话,那我就没必要自己再去造轮子了。
参考了一下网上的资料,说是socket.setKeepAlive(true)就实现了心跳包的发送功能,我不知道这个API每隔多少时间去发送一次,还是这种用法有些误解,我假定这种用法是对的,那么,心跳时间间隔我自己实现:
在Client中
心跳线程中的
run里如下实现,每隔60秒触发一下,
我想如果JDK已经实现了这个功能的话,那我就没必要自己再去造轮子了。
参考了一下网上的资料,说是socket.setKeepAlive(true)就实现了心跳包的发送功能,我不知道这个API每隔多少时间去发送一次,还是这种用法有些误解,我假定这种用法是对的,那么,心跳时间间隔我自己实现:
在Client中
心跳线程中的
Socket socket= Socket("127.0.0.1",8080);
socket.setKeepAlive(true);
run里如下实现,每隔60秒触发一下,
public void run{
while(true){
if(socket.getKeepAlive){
System.out.println("Client connect to Server is OK");
}else{
socket=soket("127.0.0.1",8080);
}
try {
Thread.sleep(60000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
...全文
相关推荐
socket心跳测试(java)
java语言 建立网络通讯长连接示例(心跳测试)
详解Android 通过Socket 和服务器通讯(附demo)
Android 通过Socket 和服务器通讯,是一种比较常用的通讯方式,时间比较紧,说下大致的思路,希望能帮到使用socket 进行通信的人 (1)开启一个线程发送消息 SocketOutputThread 消息是放在队列里的,当有消息后,进入队列,线程唤醒,发送消息,并反馈发送是否成功的回调 (2)开启一个线程接受服务器消息 SocketInputThread 为了防止一直收数据,浪费电池的电,采用NIO的方式读socket的数据,这个是本文的关键 (3)开启一个线程,做心跳,防止socket连接终断 , SocketHeartThread (4)构建 SocketThreadMa
多线程socket网络聊天工具
多线程socket网络聊天工具,能够显示在线用户列表,支持私聊等功能。
在线聊天系统源码(j2se)
一个在线聊天系统的源码,用j2se做的,其中涉及到线程、套接字等等,不难
Socket长连接心跳
本人测试可用,分析下安卓的Socket长连接心跳,实现了服务端和客户端


Java SE
