2013-01-16 68 views
2

我有一個應用程序可以創建一個TCP套接字並從不同種類的硬件接收數據。我的大部分客戶都是滿意的用戶,但也有一些人存在TCP連接在一段時間後中斷(可能是30秒或5分鐘)的問題。某些客戶的iOS TCP套接字連接丟失

我正在使用CFStreamCreatePairWithSocketToHost - 方法,並執行「handleEvent」方法中的所有處理。

我已經得到一些客戶的故障測井公司,我得到這個事件:「操作無法完成插座不 連接(代碼= 57)」

ErrorOccurred

一對夫婦重新連接成功後,當我嘗試重新連接我可能會得到這樣的事件:

ErrorOccurred「操作無法完成。沒有到主機的路由 (代碼= 65)」

最簡單的解釋是,創造了WiFi網絡和流數據的設備是壞的,但一些客戶也在使用連接到相同的其他應用設備,而這些應用程序不會失去聯繫。

我想盡辦法改變或改善以解決問題。

我檢查過可用數據的大小,它永遠不會超過1個句子,所以它不像任何緩衝區正在運行。

我其實也有一個小測試應用程序,除了連接到廣播設備並記錄接收到的數據之外什麼都不做,而且也失去了這些客戶的連接。

我也嘗試使用AsyncSocket來代替,但我有同樣的問題。

我的頭髮變成了灰色...... :-)任何幫助將不勝感激。

+0

其他信息:連接中斷代碼57(套接字未連接)。通常,應用程序可以在一秒鐘內重新連接,但有時重新連接會失敗,並顯示錯誤65(無路由到主機)。此錯誤(65)重複一段時間,然後可能會更改爲錯誤代碼22(無效參數)。一段時間後,重新連接嘗試更改爲錯誤代碼54(由對等方重置連接)。之後,它會混合錯誤代碼22和54並最終以錯誤代碼60結束(操作超時)。之後,重新連接成功。 – user1057831

回答

0

很多測試,記錄和猜測終於解決了這個問題。 客戶唯一需要做的就是降低波特率,問題就消失了。

案件關閉。