当网络请求失败时,我希望为我的用户提供一些有意义的错误信息。
在Windows上,我可以调用InternetGetConnectedState()来查看是否存在活动网络连接。那么在OS X上有什么等效的方法呢?
如果示例代码比较复杂,则可以获得额外的奖励分数。
当网络请求失败时,我希望为我的用户提供一些有意义的错误信息。
在Windows上,我可以调用InternetGetConnectedState()来查看是否存在活动网络连接。那么在OS X上有什么等效的方法呢?
如果示例代码比较复杂,则可以获得额外的奖励分数。
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 00:0d:93:48:d8:f2
media: autoselect (none) status: inactive
supported media: none autoselect 10baseT/UTP <half-duplex> 10baseT/UTP <full-duplex> 10baseT/UTP <full-duplex,hw-loopback> 100baseTX <half-duplex> 100baseTX <full-duplex> 100baseTX <full-duplex,hw-loopback> 1000baseT <full-duplex> 1000baseT <full-duplex,hw-loopback> 1000baseT <full-duplex,flow-control> 1000baseT <full-duplex,flow-control,hw-loopback>
en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet6 fe80::211:24ff:fe27:385f%en1 prefixlen 64 scopeid 0x5
inet 192.168.1.67 netmask 0xffffff00 broadcast 192.168.1.255
ether 00:11:24:27:38:5f
media: autoselect status: active
supported media: autoselect
OSX积极支持网络/连接情况的变化,并在发生更改时重新配置。因此,它期望应用程序开发人员不要假设网络将始终保持不变。您可能会发现System Configuration Goals and Architecture很有趣,同时也可以了解configd的工作原理。(这只是从阅读中了解到的,我从未在Mac上编写过此类程序)
SystemConfiguration框架还可以通过一个简单的命令行工具scutil(8)
来访问:
$ scutil -r stackoverflow.com
Reachable