小编vpo*_*ave的帖子

iOS 14 如何触发本地网络对话框并检查用户回答?

我看过这个 Q/A What triggers,但这不是我想要的。我也阅读了这个网络隐私权限检查,但没有答案。我还在此处搜索可以帮助我的任何方法或类:Network,但再次没有运气。

本地网络授权有一个新对话框,用户可以在其中允许/不允许“查找并连接到本地网络上的设备”。

在此处输入图片说明

但是我正在努力寻找任何 API 来如何触发此弹出窗口以及如何检查是否授予访问权限(例如,在 中AVCapture,我可以检查 的授权状态AVMediaType)。

谢谢!

networking ios swift

20
推荐指数
5
解决办法
1万
查看次数

失败(POSIXErrorCode:地址已在使用中)

我确实在苹果开发门户上问了同样的问题,并且其他人也遇到了同样的问题。

\n

我在 GitHub 上创建了简单的可重现项目:(按照 README 中的步骤操作)\n https://github.com/ChoadPet/NWListenerTest.git

\n
\n

我有屏幕,当前ConnectionListenerinitialized,然后关闭它deinitialized(称为stopListening())。

\n

第一次打开屏幕一切正常:

\n
Listener stateUpdateHandler: waiting(POSIXErrorCode: Network is down)\nListener stateUpdateHandler: ready\n\n" New connection: 10.0.1.2:50655 establish"\n"Connection stateUpdateHandler: preparing"\n"Connection stateUpdateHandler: ready"\n
Run Code Online (Sandbox Code Playgroud)\n

但对于接下来的 n 次尝试,仅显示以下消息:

\n
[] nw_path_evaluator_evaluate NECP_CLIENT_ACTION_ADD error [48: Address already in use]\n[] nw_path_create_evaluator_for_listener nw_path_evaluator_evaluate failed\n[] nw_listener_start_locked [L3] nw_path_create_evaluator_for_listener failed\n\nListener stateUpdateHandler: waiting(POSIXErrorCode: Network is down)\nListener stateUpdateHandler: failed(POSIXErrorCode: Address already in use)\n
Run Code Online (Sandbox Code Playgroud)\n
\n

它发生在 iPhone 6 iOS 12.4.1、iPhone Xs …

sockets networking tcp ios swift

6
推荐指数
1
解决办法
1472
查看次数

从 NWConnection 获取 IP 地址的正确方法是什么

我正在使用 NWListenernewConnectionHandler处理程序来获取 newConnection,如下所示:

listener.newConnectionHandler = { [weak self] newConnection in
    guard let self = self else { return }

    newConnection.stateUpdateHandler = { [weak self] newState in
        guard let self = self else { return }
        ...
        ...
        print("Connection endpoint: \(newConnection.endpoint)")
    }

    newConnection.start(queue: self.queue)
}
Run Code Online (Sandbox Code Playgroud)

这是打印: 10.0.1.2:62610

我只需要获取ip 地址,以便稍后保存,但我无法在其中找到任何属性NWEndpoint来获取它。我可以做这样的事情:

var ipAddressWithPort = newConnection.endpoint.debugDescription
if let portRange = ipAddressWithPort.range(of: ":") {
    ipAddressWithPort.removeSubrange(portRange.lowerBound..<ipAddressWithPort.endIndex)
}
Run Code Online (Sandbox Code Playgroud)

但我一点也不喜欢它。获取ip地址的正确方法是什么?

谢谢。

networking ios swift

4
推荐指数
1
解决办法
1906
查看次数

标签 统计

ios ×3

networking ×3

swift ×3

sockets ×1

tcp ×1