通訊協議中的轉義符
作用:在通訊協議中用在協議中使得通訊的內容更加安全可靠。
舉例說明:如果如今須要定製乙個通訊協議。須要的最主要的就是乙個幀頭和幀尾的標誌。由於通訊的接收方才知道什麼時候是通訊的開始和結束。那麼如果幀頭(通訊的開始)為0x02(也能夠是其它),幀尾為0x03(也能夠是其它),粗略的一看是沒有問題的,可是試想如果在幀頭和幀尾的中間資料出現0x02或者0x03的時候整個通訊過程將會被破壞掉,由於本來一幀資料還沒有傳輸完畢,接收方誤以為接收到幀頭或者幀尾就會又一次開始接收資料(導致前面已經接收的資料丟失)或者結束接收資料(導致後面的資料無法接收)。理論上來講幀頭和幀尾不管定義為什麼字元都會可能出在通訊資料中,由於我們不應該對使用者傳輸的通訊資料做出不論什麼的如果。那麼怎樣解決問題呢?轉義字元就是用來解決問題的。先看以下的這張:
這張中再增加了乙個字元即0x1b。這個字元被定義為轉義字元(也能夠設定為別的),增加這個字元後的傳輸過程變為,0x02+使用者資料+0x03。可是在使用者資料中假設出現0x02即被替換為0x1b+0xe7,假設出現0x03即被替換為0x1b+0xe8。這樣使用者資料中就絕不會再出現0x02和0x03。可是萬一使用者要傳輸的資料就是0x1b+0xe7呢?這也沒有關係,由於假設使用者要傳輸的0x1b也會被轉義為0x1b+0x00,所以假設使用者真的須要傳輸0x1b+0xe7的話也被0x1b+0x00+0xe7所替代,也不會造成干擾。
這樣做的結果是在接收端假設接收到轉義字元,就必須要推斷下乙個字元是否為特定的三個值,假設是特定的三個值就須要做特殊處理,這就是轉義字元解決通訊中防止通訊錯誤的原理。
通訊協議 UDP通訊
通訊協議 通訊協議是udp tcp通訊的基礎,沒有通訊協議的 通訊 是沒有任何意義上的,通訊協議不是底層函式或者高深的原理,而是程式設計師之間的一種文字約定。資料在網路上是以位元組的形式傳送的 底層是01碼 我們在讀取到資料之後,該以怎樣的方式對它進行解碼呢?這就是我們在通訊之前需要制定的通訊協議。...
串列埠通訊 通訊協議
我們的串列埠程式,除了通用的,進行串列埠監聽收發的簡單工具,大多都和下位機有關,這就需要關心我們的通訊協議如何快取,分析,以及通知介面。所謂通訊協議是指通訊雙方的一種約定。約定包括對資料格式 同步方式 傳送速度 傳送步驟 檢糾錯方式以及控制字元定義等問題做出統一規定,通訊雙方必須共同遵守。因此,也叫...
通訊協議 IIC通訊
iic匯流排是由資料線sda和時鐘線scl構成的序列匯流排,可傳送和接收資料。在匯流排上一般有幾個主機 也可以多個 和多個從機。從機一般不主動傳送資料,主機傳送資料,資料報中包含有從機位址,主機通過從機位址對從機進行操作。1.空閒狀態 時鐘線和資料線都為高電平 稱為釋放匯流排 時鐘線scl由主機控制...