对于学校的一个编程项目,我们必须使用 tcp 协议和 udp 协议设计一个基本的客户端/服务器设置。我已经使用 C Socket 库中的 read() 和 write() 让 TCP 工作了。我现在需要创建一个“可靠的 UDP”系统。例如:
“当服务器接收到长度消息时,它将等待最多 500 毫秒以发送该字节数。如果它接收到正确的字节数,它将以包含字符“ACK”的字符串进行响应(常见缩写为确认)。如果在超时期限结束时没有收到正确的字节数,服务器将放弃并静默退出。
我设置了 sendto() 和 recvfrom() 函数,但我不确定如何执行超时功能,以便它只等待 500ms 发送第二个 msg。如果它没有收到“ACK”并重新发送长度 msg + msg 几次,我也必须稍后在客户端执行此操作。我该如何做超时?