我有一个应用程序一次打开许多套接字描述符。我想监视这些事件的任何事件,并关闭一段时间没有看到任何事件的描述符。我有一些解决方案,但不确定是否可以通过防火墙规则来完成。我不想把精力浪费在可以通过某些系统服务或配置实现的事情上。
它必须在基于Linux的系统上完成。
我想到的解决方案是使用timerfd_create并在描述符上使用计时器来监视所有事件套接字。任何以更好的方式实现这一目标的建议都会有所帮助。提前致谢。
最佳答案
使用select()
来监控socket,man page末尾有一个例子。基本上,您将文件描述符添加到 fd_set
并调用 select()
当受监视的文件描述符之一可以读取或写入,或者设置超时时,它会返回,然后您可以使用带有较小超时的 select 来检查计时器回调中的 fd 并关闭尚未准备好的 fd。
关于c++ - 监控套接字描述符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13440773/