【发布时间】:2014-01-21 18:25:39
【问题描述】:
美好的一天,
我正在 iPhone 上为 PC 上运行的应用程序编写自定义控制器。我正在使用标准编码在我的 ios 客户端上设置和打开套接字并写入/接收数据。一切都很好,直到我去了一个 wifi 连接较弱的区域,iPhone 或 PC 失去了连接。我使用Reachability 在 iPhone 上添加了一个 wifi 连接测试,它按预期工作。我假设使用与NSStream 相关的三种可能的错误检查方法之一会让我知道连接的远程端(即 PC)是否有问题。
我首先发送了一条[outputStream streamStatus] 消息,希望在我关闭 PC 上的 wifi 适配器时获得一个 NSStreamStatusError 代码。我得到的是一个NSStreamStatusOpen 代码。
第二次尝试是检查来自 write: maxLength: 的 -1 返回码。相反,这给出了成功发送的字节数(假设)。
第三次尝试是明确地查看NSStream 代表正在接收什么代码。大多数时候是NSStreamEventHasSpaceAvailable,但从不是NSStreamEventErrorOccurred。
有人知道为什么吗? NSStream 和Reachability(旧版)类似吗?只要手机有连接就开心吗?
感谢您提供任何见解。
RB
【问题讨论】:
标签: ios iphone sockets nsstream