c++ - 监控套接字描述符

标签 c++ c linux monitoring

我有一个应用程序一次打开许多套接字描述符。我想监视这些事件的任何事件,并关闭一段时间没有看到任何事件的描述符。我有一些解决方案,但不确定是否可以通过防火墙规则来完成。我不想把精力浪费在可以通过某些系统服务或配置实现的事情上。

它必须在基于Linux的系统上完成。

我想到的解决方案是使用timerfd_create并在描述符上使用计时器来监视所有事件套接字。任何以更好的方式实现这一目标的建议都会有所帮助。提前致谢。

最佳答案

使用select()来监控socket,man page末尾有一个例子。基本上,您将文件描述符添加到 fd_set 并调用 select() 当受监视的文件描述符之一可以读取或写入,或者设置超时时,它会返回,然后您可以使用带有较小超时的 select 来检查计时器回调中的 fd 并关闭尚未准备好的 fd。

关于c++ - 监控套接字描述符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13440773/

相关文章:

c - 在linux内核中映射io设备地址?

linux - 修改linux网关中的http数据包

python - 使用 python c api 获取共享对象的完整路径

c++ - 如何给 child 一个指向 parent 的弱指针? (C++)

c++ - 仅由变量标识符组成的表达式类型

c - 使用指向数组的空指针

Android-Ndk 与交叉编译?两者都有效,但 Android NDK 的需求是什么?

c++ - Magick++ 链接错误

c++ - 使用带有 Ifstream 的 Getline 缺少数据行

c++ - 将 Visual C/C++ 内联汇编代码转换为 GCC 等效代码