我有一个应用程序可以创建一个TCP套接字并从不同种类的硬件接收数据。我的大部分客户都是满意的用户,但也有一些人存在TCP连接在一段时间后中断(可能是30秒或5分钟)的问题。某些客户的iOS TCP套接字连接丢失
我正在使用CFStreamCreatePairWithSocketToHost - 方法,并执行“handleEvent”方法中的所有处理。
我已经得到一些客户的故障测井公司,我得到这个事件:“操作无法完成插座不 连接(代码= 57)”
ErrorOccurred
一对夫妇重新连接成功后,当我尝试重新连接我可能会得到这样的事件:
ErrorOccurred“操作无法完成。没有到主机的路由 (代码= 65)”
最简单的解释是,创造了WiFi网络和流数据的设备是坏的,但一些客户也在使用连接到相同的其他应用设备,而这些应用程序不会失去联系。
我想尽办法改变或改善以解决问题。
我检查过可用数据的大小,它永远不会超过1个句子,所以它不像任何缓冲区正在运行。
我其实也有一个小测试应用程序,除了连接到广播设备并记录接收到的数据之外什么都不做,而且也失去了这些客户的连接。
我也尝试使用AsyncSocket
来代替,但我有同样的问题。
我的头发变成了灰色...... :-)任何帮助将不胜感激。
其他信息:连接中断代码57(套接字未连接)。通常,应用程序可以在一秒钟内重新连接,但有时重新连接会失败,并显示错误65(无路由到主机)。此错误(65)重复一段时间,然后可能会更改为错误代码22(无效参数)。一段时间后,重新连接尝试更改为错误代码54(由对等方重置连接)。之后,它会混合错误代码22和54并最终以错误代码60结束(操作超时)。之后,重新连接成功。 – user1057831