Swift - 测试与网站和可用端口的连接

问题描述 投票:0回答:1

我无法在互联网上的任何地方找到这个问题的可靠答案,我觉得必须有一个简单的答案。我正在尝试测试我是否在Mac OS上使用Swift连接到特定的IP地址和某些端口。

如果我能够连接到URL或与之关联的特定端口,我真的只想返回true / false。

有任何想法吗?

swift networking reachability cfnetwork
1个回答
1
投票

看看Network框架。它功能强大且非常灵活,允许直接访问TLS,TCP和UDP等协议,以用于自定义应用程序协议。它是Swift-ready并且易于使用。

import Network

let connection = NWConnection(host: "www.google.com", port: .https, using: .tcp)
connection.stateUpdateHandler = { (newState) in
    switch(newState) {
    case .ready:
    print("Handle connection established")
    case .waiting(let error):
    print("Waiting for network", error.localizedDescription)
    case .failed(let error):
    print("Fatal connection error", error.localizedDescription)
    default:
    break
    }
}
connection.start(queue: .main) // Use some other queue if doing it for real.

上面的代码甚至可以在Playground中使用(并且至少启动一次stateUpdateHandler)。在真正的应用程序中,每次状态改变时都会调用stateUpdateHandler。 BTW,URLSession,建立在这个框架之上。

© www.soinside.com 2019 - 2024. All rights reserved.