本人再做一个C#开发的socket 通信系统,在连接的过程中我做了测试连接,就是测试服务端和客户度是否连接。实现原理为
客户端定时发送信号给服务器,然后在指定时间内能够收到服务端发回来的信号,则表示没有掉线,如果在指定时间内没有收到服务端发回来的信号,则客户端认为已经和服务器断开了连接,则客户端会发一个断线信号给服务端,服务端会把客户在线列表清除这个客户端连接,然后客户端会重新再和服务器创建连接。
(备注,客户端和服务端是多对一的关系,客户端之间的通信都要进过服务端的转发)
也就是在这个过程中,客户端发个服务端的信号,服务端都能接受,也能做出了相应的处理,也就是说,服务端接收到了客户端的信号,也发送回去给客户端信号了,但是可能就是客户端没有收到服务端的信号,而产生了自主断线,重连。
就出现了,两个人在打电话,一个能听见声音,但是另一个不能听见声音,但是挂了重新接通电话,则双方听见声音了。
如何让socket连接不要出现以上的那些现象,请高手分析下,这是什么原因,还有我应该如何写这个客户端和服务端,测试连接的代码,也就是所谓的心跳测试这个东东,最好有类似源码(C#的),发到我邮箱clb_wmj@163.com ,谢谢各位的帮助