modbusTCP是基于TCP傳輸的,而tcp是資料流,與rtu這種基于資料幀傳輸是不一樣的。
問:基于幀的傳輸我們能看到幀的首尾位元組,所有資料都能決議了,但基于流的傳輸如何定位報文的起始呢?
比如有兩條連續的功能碼為0x10的資料,應該有230個位元組長度,但tcp傳輸程序中,先到達10個位元組,又到達130個位元組,最近又到達90個位元組,在前后到達的這230個位元組中,mobus的mbap報頭可能在前10個位元組中,也可能在中間的130個位元組中,也可能在后面的90個位元組中,這個報文在當前收到的230個位元組的tcp資料流中有沒結束也不知道,怎么確定報文的起始與結束呢?
補問:如果從流中檢索符合報文頭的資料段,又發現這個報文頭與報文中的資料很可能是一樣的,會變成一個報文中,有好幾個資料段都是符合報文頭規則的,那么這個報文還是不能在流中截取出來,請高手講解一下。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/256507.html
標籤:網絡通信
