我有一个 netlink 套接字程序,用于检测网络连接是否断开或何时恢复。我正在使用 cpp 程序这链接,但是结果不太正确。
当我使用命令关闭网络连接时:sudo ifconfig <interfaceID> down
,我在 RTM_NEWLINK 中得到了正确的输出,并且条件“ if(ifi->ifi_flags & IFF_RUNNING)
”变为假。
但是,当我使用命令打开网络连接时sudo ifconfig <interfaceID> up
,相同的情况会触发两次,其中一次检测到网络关闭,然后检测到网络开启。每次网络连接开启时都会发生这种情况,并且每次触发两次时,首先检测到网络关闭,然后检测到网络开启。相反,它应该只在一次触发中检测到网络开启。
有什么问题我没能弄清楚吗?