Nav*_*mon 14 connection macos cocoa
如何检查OS X cocoa应用程序中的Internet连接?可以将Apple的iOS Reachability示例代码重用于此目的吗?
谢谢,
纳瓦
dba*_*dge 19
Apple网站上列出并在上面引用的当前版本的可达性代码(2.2)不能按原样编译Mac OS X Cocoa应用程序.常量kSCNetworkReachabilityFlagsIsWWAN仅在编译TARGET_OS_IPHONE和Reachability.m引用该常量时可用.您将需要#ifdef Reachability.m中的两个位置,如下所示引用它:
#if TARGET_OS_IPHONE
(flags & kSCNetworkReachabilityFlagsIsWWAN) ? 'W' : '-',
#else
0,
#endif
Run Code Online (Sandbox Code Playgroud)
和
#if TARGET_OS_IPHONE
if ((flags & kSCNetworkReachabilityFlagsIsWWAN) == kSCNetworkReachabilityFlagsIsWWAN)
{
// ... but WWAN connections are OK if the calling application
// is using the CFNetwork (CFSocketStream?) APIs.
retVal = ReachableViaWWAN;
}
#endif
Run Code Online (Sandbox Code Playgroud)
Uni*_*orn 10
此代码将帮助您查找是否可以访问互联网:
-(BOOL)isInternetAvail
{
BOOL bRet = FALSE;
const char *hostName = [@"google.com" cStringUsingEncoding:NSASCIIStringEncoding];
SCNetworkConnectionFlags flags = 0;
if (SCNetworkCheckReachabilityByName(hostName, &flags) && flags > 0)
{
if (flags == kSCNetworkFlagsReachable)
{
bRet = TRUE;
}
else
{
}
}
else
{
}
return bRet;
}
Run Code Online (Sandbox Code Playgroud)
有关更多信息,您可以查看iphone-reachability
不推荐使用Unicorn的解决方案,但您可以使用以下代码获得相同的结果:
SCNetworkReachabilityRef target;
SCNetworkConnectionFlags flags = 0;
Boolean ok;
target = SCNetworkReachabilityCreateWithName(NULL, hostName);
ok = SCNetworkReachabilityGetFlags(target, &flags);
CFRelease(target);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8522 次 |
最近记录: |