怎么设计心跳测试?
我在写一个C/S程序,服务器端为MFC程序,用IOCP(完成端口)技术完成。所有接收到的连接都写入一个链表。
现在需要对链表内的地址进程测试,去除定时无响应的主机。
但是我不知道该怎么设计心跳测试。
我的方案是:
(服务器端)
1。服务器端建一个线程作为心跳测试线程,清除链表B和链表C的内容。
2。建一个循环,首先复制当前链表A(上线的主机)中内容进链表B,然后依次向其中的地址发送测试包,然后Sleep 5秒,然后在链表C(IOCP线程中收到客户端回应的心跳测试后,写入链表C)中寻找链表B的每一项,如果找到则不处理,找不到则A链表中该项删除。
(客户端)
1。进入循环,直到连接上服务器。
2。设置ONtime消息,设置变量tt值为0。
3。在收到服务器端的心跳包后回复,tt++。
4。处理ONtime消息,如果tt值小于某值,则回到1,同时tt = 0;否则重复2-4。
不知道有没有更好的方案,特别是一些远控软件是怎么设计它的?