在Mac OS X上,当网络接口(en0,en1)状态发生变化时,有没有办法获得异步通知,例如网络接口处于活动状态,非活动状态等?
我不想轮询状态,我想知道有没有办法获得异步通知,这样每当有更改时,都会触发通知并且app可以处理它。
这可能吗?
谢谢,
答案 0 :(得分:1)
这完全取决于您要了解的网络状态的变化(例如,您是只想知道何时获得或失去网络连接,还是想知道诸如是否已切换WiFi等信息?网络或类似的更深奥的细节),如果您提供了更多细节,我可以提供更好的答案,但一般来说,我认为您想使用 SystemConfiguration
框架,特别是 SystemConfiguration/SCNetworkReachability.h
API (在Apple文档here中进行了介绍)。
比这更具体的是,我认为SCNetworkReachabilityCallBack
是您要使用的回调函数的类型。 This here是Apple的文档。
最后,要设置该回调,我的意思是首先您必须编写回调函数,但是要“注册”它,以便SystemConfiguration将在网络状态更改时使用它来回调您,请使用此人:{{1 }}在Apple官方文档here中进行了描述。
希望这会有所帮助,如果您需要更多具体的帮助,只需在问题中添加更多具体信息即可:)
答案 1 :(得分:-2)
检查最佳答案here。它适用于iOS SDK,但提到的SystemConfigration框架也可在Mac OSX上使用。