21z*_*ch2 4 iphone ping objective-c reachability
我正在尝试检查服务器是在线还是离线:我遇到连接到它时有端口的问题
我的代码目前:
struct sockaddr_in address;
address.sin_len = sizeof(address);
address.sin_family = AF_INET;
address.sin_port = htons(25667);
address.sin_addr.s_addr = inet_addr("fr7.mooshroom.net");
Reachability *reachability = [Reachability reachabilityWithAddress:&address];
Run Code Online (Sandbox Code Playgroud)
请让我知道我做错了什么.请不要把我与其他问题联系起来,我已经搜索过了,没有人能找到我正在寻找的东西.
基本上,inet_addr()函数不会为您执行域名解析.您需要传递一个IP地址(例如127.0.0.1).
要将DNS名称解析为IP地址,您需要查看标准的gethostbyname()函数.
澄清:
struct hostent *host = gethostbyname("fr7.mooshroom.net");
if (host) {
struct in_addr in;
NSLog(@"HOST: %s" , host->h_name);
while (*host->h_addr_list)
{
bcopy(*host->h_addr_list++, (char *) &in, sizeof(in));
NSLog(@"IP: %s", inet_ntoa(in));
}
}
Run Code Online (Sandbox Code Playgroud)
现在,说了这么多,你确定这会做你想要的吗?SCNetworkReachabilityRef的文档建议不要:
"当应用程序发送到网络堆栈的数据包可以离开本地设备时,远程主机被认为是可达的.可达性并不能保证主机实际接收数据包."
| 归档时间: |
|
| 查看次数: |
3192 次 |
| 最近记录: |