我有一个创建 TCP 套接字并从不同类型的硬件接收数据的应用程序。我的大多数客户都是满意的用户,但有些客户会遇到 TCP 连接在一段时间后中断(可能是 30 秒或 5 分钟)的问题。
我正在使用 CFStreamCreatePairWithSocketToHost - 方法,并在“handleEvent”方法中完成所有处理。
我有一些客户记录失败,我得到了这个事件:
ErrorOccurred “操作无法完成。套接字未连接(代码 = 57)”
经过几次成功的重新连接后,当我尝试重新连接时,我可能会收到此事件:
ErrorOccurred “操作无法完成。没有到主机的路由(代码 = 65)”
简单的解释是他们创建 WiFi 网络和流式传输数据的设备不好,但一些客户也在使用连接到相同设备的其他应用程序,并且这些应用程序不会失去连接。
我没有什么想法可以改变或改进以解决问题。
我已经检查了可用数据的大小,它从不超过 1 个句子,所以它不像任何缓冲区都已满。
实际上,我还有一个小型测试应用程序,它除了连接到广播设备并记录接收到的数据之外什么都不做——这也失去了这些客户的连接。
我也尝试使用AsyncSocket
,但我遇到了同样的问题。
我的头发变白了...... :-) 任何帮助将不胜感激。