【问题标题】:Converting [NSNetservice addresses] to ip address string将 [NSNetservice 地址] 转换为 ip 地址字符串
【发布时间】:2010-02-24 17:03:08
【问题描述】:

这里已经有人问过这个问题: 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 工作。知道我做错了什么吗?谢谢。

【问题讨论】:

  • 其实inet_ntoa已经贬值了,改用inet_ntop吧!

标签: iphone objective-c cocoa-touch nsnetservice


【解决方案1】:

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

 #include <arpa/inet.h>

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

【讨论】:

  • 效果很好。非常感谢您的快速响应!
【解决方案2】:

FWIW 我已经发布了一个更新的代码 sn-p 用于处理 NSNetService 地址解析

iPhone: Bonjour NSNetService IP address and port.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-22
    • 1970-01-01
    • 2021-10-15
    • 1970-01-01
    • 2019-05-13
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    相关资源
    最近更新 更多