小编Ruu*_*ema的帖子

如何从 NWEndpoint.service 枚举案例解析地址和端口信息(如果可能)

目前我正在使用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
    { …
Run Code Online (Sandbox Code Playgroud)

macos bonjour dns-sd swift network-framework

7
推荐指数
1
解决办法
342
查看次数

标签 统计

bonjour ×1

dns-sd ×1

macos ×1

network-framework ×1

swift ×1