c - 在 C 套接字通信中设置多个定时器

标签 c linux sockets timer client-server

我面临在我的C语言套接字通信程序中维护多个定时器的情况。我有一个客户端服务器程序,其中客户端和服务器都应该为它发送到另一台机器的每个数据包维护一个计时器。 我的协议(protocol)是这样工作的—— 机器 A 发送的每个数据包,机器 B 必须在一定时间内确认相同的数据包。因此,机器 A 发送的每个数据包都必须有一个计时器。如果计时器检测到超时,套接字连接必须关闭。 这样我需要为每个数据包维护计时器。所有数据包的超时时间都相同。我想知道 C 中是否有任何规定来设置不同的计时器并区分它们以实现上述功能。

最佳答案

您可以拥有一个计时器和一个“事件”队列,而不是多个计时器。队列按事件发生时间排序。因此,当您发送数据包时,只需将断开连接事件添加到事件队列,并为该事件存储一些标识符。如果您在事件触发前收到回复,请从队列中删除该事件。

关于c - 在 C 套接字通信中设置多个定时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8739813/

相关文章:

c - 并非for循环中的所有指令都被执行

linux - 如何在使用 GDB 生成进程核心文件之前预测其大小?

php - 哪个时区使用 cpanel 进行 cron 作业?

xcode - 沙箱无法访问本地套接字

c - 如何在 C 中对单个字符执行 scanf

c - 在 C 中的 typedef 上初始化整型变量

Java swing 客户端服务器问题

html - socket.io 仅在本地计算机上工作,无法从另一台计算机连接

c - 多个可执行文件上的 libcurl 和curl_global_init()

Linux Bash expr 索引命令