国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

485轉(zhuǎn)tcp通信控制設備,收發(fā)機制問題請教

h0r1z0n

由于RS485是半雙工通信,必須一發(fā)一收,發(fā)一個等待接收在處理。
也可能由于設備干擾或者gprs模塊不穩(wěn)定的問題,可能出現(xiàn)的問題是發(fā)出去的包,收不到的話我就需要重發(fā)。
比如onConnect時候,我發(fā)送一個命令,get_uid獲取設備,等待返回數(shù)據(jù),這時候需要等待onMessage返回處理數(shù)據(jù),但是如果出現(xiàn)設備問題,我就無法接受數(shù)據(jù)無法在繼續(xù)下一步工作了,請問使用workerman的什么機制處理比較好,主要實現(xiàn)的我發(fā)送的命令等待接收,如果超過10s接收不到,我再次重發(fā),三次都收不到,我就斷開了等待客戶端重連。如果正常獲取uid之后,之后的執(zhí)行的機制也大體是這樣的,workerman使用什么方案能夠解決這個問題,謝謝。

5353 1 0
1個回答

walkor 打賞

tcp自帶重發(fā)機制,并且保證數(shù)據(jù)包按順序發(fā)給對端。
所以服務端通過相同的連接重發(fā)數(shù)據(jù)是沒有意義的。

比如服務端通過同一個socket連接給設備發(fā)送了A1數(shù)據(jù)包,設備沒收到,服務端又通過這個連接重新發(fā)了A2,后來又發(fā)了A3,如果A1收不到,那么后面重發(fā)的A2 和 A3肯定收不到。

這種情況主動權(quán)在客戶端,客戶端發(fā)起連接,發(fā)現(xiàn)一定時間沒收到服務端的數(shù)據(jù),可以選擇斷開重新連接服務端

  • 暫無評論
年代過于久遠,無法發(fā)表回答
??