关于如何检查端口是否打开,我还没有找到任何东西。我尝试使用AsyncSocket类实现它,但是尽管我拒绝了到服务器上该端口的所有连接,但它始终返回TRUE。 另外,我尝试使用AsyncSocket的isConnected方法,但始终返回FALSE。

到目前为止,我的代码: 通用标签

有帮助吗?

解决方案

您需要使自己成为委托并处理onSocket:willDisconnectWithError:方法。连接是完全异步的,因此,除非存在根本的系统问题(禁用了套接字,传递了无效的地址等),否则在后台尝试进行套接字连接时,该调用将始终成功。

如果该尝试失败,则将调用onSocket:willDisconnectWithError:委托方法,以便您可以知道连接尝试失败。

我不确定为什么,但是AsyncSocket类认为kCFStreamStatusError流状态为“已连接”,因此我怀疑这就是为什么它显示为已连接。您可以在AsyncSocket的源代码中关注所有这一切。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top