【发布时间】:2022-11-09 07:27:50
【问题描述】:
我们有一个IOS应用程序只要使用 CFSocketCreate/CFSocketGetNative/CFSocketCreateRunLoopSource/CFStreamCreatePairWithSocket 等(通过 HTTP 显示调试信息)在 INADDR_ANY 套接字连接上侦听入站连接。
(因此它属于“侦听和接受传入 TCP 连接”类别)。
如果第一个传入的套接字连接发生在新安装的应用程序上,我们会遇到上述错误。由于我们既不使用 Bonjour 也不使用 getpeername() 我想知道问题出在哪里。显然,对话框如何关闭并不重要,我们的程序可以正常工作。但这对我们(QA 更难)和我们的客户来说当然很烦人。
知道可能是什么问题吗? 我查看了此处相关的所有问题,但我认为我们没有使用触发对话的“禁止”API 之一
如果我为NSStreamDelegate 的stream:handleEvent: 函数设置断点,则会出现弹出窗口前NSStreamEventOpenCompleted,所以看起来 NSStream 处理的一些内部原因导致了这个。
在调试控制台上,顺便说一句:
[connection] nw_connection_copy_connected_path [C1] Client called nw_connection_copy_connected_path on unconnected nw_connection 2022-04-06 17:28:55.811551+0200 GenMob[35630:3181485] [] tcp_connection_is_cellular No connected path
我确实整理了一个可从https://github.com/leopatras/cfsocket 下载的小型演示应用程序。
【问题讨论】:
标签: ios