我正在用 C 语言编写一个基于客户端服务器的选举系统,我必须每 30 分钟后向客户端提供更新。有人请帮助我如何实现这一目标。我是一名学生,C 语言不太好......
最佳答案
在较高级别上(假设您正在使用带有 select()
/poll()
设计的经典单线程服务器多路复用):
您在与每个客户端关联的数据结构中记录该客户端下一次更新的到期时间。在代码中准备阻止 select()
或 poll()
之类的调用时,您可以计算最早更新到期之前的剩余时间。然后,您可以使用它作为阻塞调用的超时值。
当 select()
/poll()
返回时,除了检查事件文件描述符外,您还可以检查已达到“更新到期”时间的客户端。然后,您向每个客户端发送更新,并重新计算“下次更新到期”时间。
关于客户端服务器延迟30分钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9528534/