gpt4 book ai didi

iPhone SDKreachabilityWithAddress问题

转载 作者:行者123 更新时间:2023-12-03 19:42:29 26 4
gpt4 key购买 nike

我只需要检查 IP 地址的连接性。我正在尝试使用 Apple Reachability 类,使用reachabilityWithAddress 选项来完成此操作。我的问题是我可以将任何 IP 地址放入 callAddress.sin_addr.s_addr 字段中,并且 statusText 始终为“reachble”。如何准确检查与 IP 地址的连接?

-(BOOL)reachabilityTest {

struct sockaddr_in callAddress;
callAddress.sin_len = sizeof(callAddress);
callAddress.sin_family = AF_INET;
callAddress.sin_port = htons(24);
callAddress.sin_addr.s_addr = inet_addr("212.83.3.190");
Reachability *hostReach = [[Reachability reachabilityWithAddress:&callAddress] retain];

NetworkStatus netStatus = [hostReach currentReachabilityStatus];

if (netStatus == NotReachable)
{
NSLog(@"NotReachable");
statusField.text = @"NOT reachable";
return NO;
}

if (netStatus == ReachableViaWiFi)
{
NSLog(@"ReachableViaWiFi");
statusField.text = @"reachable";
return YES;
}
[Reachability release];
}

最佳答案

不要使用 Reachability 类,而是使用老式方法并打开一个 TCP 连接。如果对 connect() 的响应是 EHOSTUNREACH,则不能。如果响应为 ECONNREFUSED 或连接成功,则可以。

关于iPhone SDKreachabilityWithAddress问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4070754/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com