解析Bonjour网络中的主机名

时间:2017-03-01 09:37:16

标签: ios swift bonjour nsnetservice

我有一个使用JmDNS的基于Java的服务器,它是从iOS应用程序中发现的。

该发现工作正常,这是NetServiceDelegate执行的回调,用于记录详细信息:

public func netServiceDidResolveAddress(_ service: NetService) {
    guard let hostName = service.hostName else {
        return
    }

    mockServerUrl = "http://\(hostName):\(service.port)/analytics"
    Logger.log("Using mock server at \(mockServerUrl)", forLevel: .info)
}

这会产生如下所示的网址: pivot operation

现在我发誓这是有效的,但是现在当我尝试使用Alamofire将数据发送到此端点时,它会一直超时。

使用目标机器的硬编码IP地址替换主机名使其再次起作用,因此发送数据的代码没有根本问题。

上述表单的地址是否应以" .local结尾。"可以从与目标服务器相同的网络上的iOS设备解析吗?

1 个答案:

答案 0 :(得分:0)

问题出在Java服务器端。它是通过调用InetAddress.getLocalHost()进行注册的。这是返回环回地址。

我根据这个问题修改了我的代码以找到非环回地址: IP Address not obtained in java