当网络请求失败时,我想为我的用户提供一些有意义的错误消息。
在Windows上,我可以调用InternetGetConnectedState()来查看是否有活动的网络连接。OS X的等价物是什么?
加分:如果代码很复杂,就给它加分。
发布于 2009-09-07 21:30:21
不要寻找活动的网络连接,要查找目标主机是否为reachable。它并不复杂,所以没有示例代码:-)
更新:我想我应该解释一下在这种情况下可达是什么意思。如文档中所述,如果发往远程网络地址的数据包可以通过任何网络接口离开此计算机,则认为该地址是可到达的。粗略地说,这是一个事实的表达,即i/f被配置并能够直接传送到远程系统,或者具有到达它的可用路由。可达性不会描述与远程主机是否“启动”或此计算机与远程计算机之间的网络是否正常工作相关的任何内容。
发布于 2009-09-07 21:46:19
OSX积极支持网络/连接情况的变化,并在任何时候发生变化时重新配置。因此,它希望应用程序开发人员不要假设网络总是保持不变。您可能会发现System Configuration Goals and Architecture是一本有趣的读物,同时还可以检查configd的工作原理。(这只是我读到的,我从来没有在mac上编写过这样的程序)
发布于 2009-09-07 21:49:03
还可以通过一个简单的命令行实用程序scutil(8)公开SystemConfiguration框架
$ scutil -r stackoverflow.com
Reachablehttps://stackoverflow.com/questions/1390961
复制相似问题