繁体   English   中英

地址可达性-服务器和端口-iOS 5

[英]Reachability with Address - Server AND Port - iOS 5

我正在尝试检查服务器是联机还是脱机:我遇到的问题是,服务器在连接时具有端口

我目前的代码:

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];

请让我知道我做错了什么。 并且请不要将我链接到其他问题,我已经搜索过了,没有一个人正在寻找我想要的东西。

基本上,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));
    }
}

现在,说了这么多,您确定这将做您想要的吗? SCNetworkReachabilityRef的文档建议不要:

http://developer.apple.com/library/ios/#documentation/SystemConfiguration/Reference/SCNetworkReachabilityRef/Reference/reference.html

“当应用程序发送到网络堆栈的数据包可以离开本地设备时,远程主机被认为是可到达的。可到达性不能保证主机会实际接收到该数据包。”

我已经解决了,我需要把线放好:
const char *serverIPChar = [serverIP cStringUsingEncoding:NSASCIIStringEncoding];
并更换里面的“fr7.mooshroom.net” inet_addrserverIPChar 不管怎么说,还是要谢谢你

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM