我正在研究一个服务器使用C的项目,它需要向客户端发送心跳以检查其状态(使用tcp套接字),我想知道服务器端程序如何检测客户端是否已崩溃。
确切地说,建立tcp连接,当服务器向客户端发送一个段时,它需要得到一个ack回复,如果客户端崩溃了怎么办,一遍又一遍地重新传输这个段?我如何处理这种情况,是否有人能给我一个例子?
感谢。
答案 0 :(得分:0)
当您设计要在项目中使用的协议时,您可以随心所欲地执行此操作。通常,一方每隔X秒向另一方发送一条消息,另一方发送回复。如果不发送消息的一方在Y秒内没有收到消息(其中Y大于X),则认为连接已经死亡。
基本上,如果您正在设计基于TCP的协议,则可以以任何方式执行此操作。请记住TCP不会为您执行此操作。