背景:最近項目用到一塊工控板,板子硬件與上位機通過udp方式進行通信,但廠家只提供了c#的demo,並將相應的驅動命令封裝為dll動態庫。另一項目小組希望在android平台下也能驅動這塊工控板,我之前寫過一些底層的驅動,但都收通過串口來傳輸的,通過網絡進行數據通信的還是頭一次接觸。簡單地看了下硬件的通信協議,還好,不算很復雜,每條命令只有20個字節。於是開始了解在android下如何實現Udp通信,現積累如下。
what?
字面意思:UDP的全稱是 User Datagram Protocol,意思是用戶數據包協議。
特點:1.是一種無連接的傳輸層協議。
2.提供面向事務的無連接、不可靠數據傳輸服務。
3.不提供數據包分組、組裝、排序。
how?
1.client:
2.server:
bug:發送數據包時,指定了發送端口,但服務端解析到的端口號卻不是客戶端所指定的。
debug:創建socket對象時,將端口號作為參數傳遞:
效果圖(服務端):