c - 如何为事件计时

标签 c sockets tcp

C 中处理定时事件的最佳实践是什么?我正在考虑的场景是,如果我在一秒钟内没有收到服务器的响应,我需要从客户端重新发送数据到服务器。

代码会很好,但概念的解释会更有值(value)。

最佳答案

大多数操作系统都有某种形式的计时器。在 Linux/Unix/Posix 中你有 alarm ,在 Windows 中有 SetTimer

所以,基本上,您发送一条消息,并将计时器设置为您期望收到回复的时间 - 1 秒、10 秒、30 秒 - 任何适合您情况的时间。

如果您收到回复,您可以取消计时器,并执行您计划对回复执行的任何其他操作。如果在计时器触发之前没有回复到达,您将再次发送[这可能意味着“向某个信号量或标志发出信号”以再次发送,而不是在计时器的处理程序中实际执行此操作]。

对于其他操作系统,您必须告诉我们您正在查看什么,但大多数操作系统都有某种机制来处理“告诉我 X 时间已过”。

关于c - 如何为事件计时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14677916/

相关文章:

closedir()导致core dumped

c - 二叉树传输

delphi - 在delphi中建立tcp ip连接时无法读取消息

c++ - windows下奇怪的tcp死锁

c - 我如何使用宏和函数指针在 C 语言中实现类似于 C++ 中的 lambda 函数的东西?

c - C中初学者电话簿应用程序的奇怪输出

java - GUI 未按预期更新/控制流问题

python - 在 Python 套接字中缓存 HTTP GET REQUEST

tcp - 对TCP的基本理解

json - 在服务器上加载 CSV 数据,将数据转换为 JSON 并使用 Golang 使用 Json 查询获取结果