目前我正在使用NetServiceBrowser
查找 Bonjour 服务并解析相应的地址和端口。
为了简化我偶然发现的代码,NWBrowser
它似乎提供了一个非常简单的界面来处理 Bonjour 发现。
但是,browseResultsChangedHandler
发送回包含 enum case 端点的结果和更改service
。我正在尝试从结果中获取地址和端口信息,但似乎NWEndpoint
必须是枚举类型.hostPort。
理想情况下,我会使用端点连接到服务器NWConnection
,但是,我正在使用另一个不NWEndpoint
直接处理的库。
是否有(简单的)方法可以从结果中获取地址和端口信息NWEndpoint.service
?
import Foundation
import Network
let browser = NWBrowser(for: .bonjour(type: "_http._tcp", domain: ""), using: NWParameters())
browser.browseResultsChangedHandler = { (results, changes) in
print("Results:")
for result in results
{
if case .service(let service) = result.endpoint
{
debugPrint(service)
}
else
{
assert(false, "This nevers gets executed")
}
}
print("Changes:")
for change in changes
{
if case .added(let added) = change
{
if case .service(let service) = added.endpoint
{
debugPrint(service)
}
else
{
assert(false, "This nevers gets executed")
}
}
}
}
browser.start(queue: DispatchQueue.main)
sleep(3)