将[NSNetservice addresses]转换为ip地址字符串

时间:2010-02-24 17:03:09

标签: iphone objective-c cocoa-touch nsnetservice

此问题已在此处提出: NSNetservice IP address

在这里: iPhone: Bonjour NSNetService IP address and port

我已经用这两个来达到我现在的位置。我的问题是以下方法我不太有用:

- (NSString *)getStringFromAddressData:(NSData *)dataIn {
    struct sockaddr_in  *socketAddress = nil;
    NSString            *ipString = nil;

    socketAddress = (struct sockaddr_in *)[dataIn bytes];
    ipString = [NSString stringWithFormat: @"%s",
                inet_ntoa(socketAddress->sin_addr)];  ///problem here
    return ipString;
}

这给出了一个构建错误,说明在同一行上“解除指向不完整类型的指针”和“隐式声明函数'inet_ntoa'”。

我已经检查过,我不认为我错过了某种类型的框架来让inet_ntoa工作。知道我做错了什么吗?感谢。

2 个答案:

答案 0 :(得分:19)

如果你得到inet_ntoa的隐式声明,你可能需要

 #include <arpa/inet.h>

(您可以通过man inet_ntoa获取此信息并阅读有关该功能的更多信息)

答案 1 :(得分:3)

FWIW我发布了一个更新的代码片段,用于处理

上的NSNetService地址解析

iPhone: Bonjour NSNetService IP address and port