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