![使用网络链接进行的网络变化检测无法正常工作](https://linux22.com/image/1198629/%E4%BD%BF%E7%94%A8%E7%BD%91%E7%BB%9C%E9%93%BE%E6%8E%A5%E8%BF%9B%E8%A1%8C%E7%9A%84%E7%BD%91%E7%BB%9C%E5%8F%98%E5%8C%96%E6%A3%80%E6%B5%8B%E6%97%A0%E6%B3%95%E6%AD%A3%E5%B8%B8%E5%B7%A5%E4%BD%9C.png)
我有一个 netlink 套接字程序,用于检测网络连接是否断开或何时恢复。我正在使用 cpp 程序这链接,但是结果不太正确。
当我使用命令关闭网络连接时:sudo ifconfig <interfaceID> down
,我在 RTM_NEWLINK 中得到了正确的输出,并且条件“ if(ifi->ifi_flags & IFF_RUNNING)
”变为假。
但是,当我使用命令打开网络连接时sudo ifconfig <interfaceID> up
,相同的情况会触发两次,其中一次检测到网络关闭,然后检测到网络开启。每次网络连接开启时都会发生这种情况,并且每次触发两次时,首先检测到网络关闭,然后检测到网络开启。相反,它应该只在一次触发中检测到网络开启。
有什么问题我没能弄清楚吗?