您好,登錄后才能下訂單哦!
【前提】客戶端采用tcp阻塞模式
【現象】與相機設備建立連接后,偶爾出現幾次突然就收不到相機發過來的數據;幾經排查,懷疑跟網絡波動有關,于是通過插拔網線來模擬網絡波動,果然bug復現。
【分析】為什么網絡中斷tcp不主動通知應用程序呢?這涉及到TPC/IP協議的一個設計原則,即終端對終端參數。什么意思呢?就是由調用層選擇是否需要這種功能,如果需要,調用者就自己設置相應參數,而不是tcp一檢測到網絡中斷就及時反饋,因為大多數的應用程序并不需要即時的通知。
ps:我們自己設計接口的時候也應該考慮這種原則。
【解決方案】
1、換成非阻塞模式;
2、阻塞+保活。
這樣,就可以利用函數返回值來判斷是否需要重連了。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。