linux串口上网的简单实现,Linux串口上网的简单实现(3)
方法rebuild_header()。Linux2.x使用的rebuild_header()例程在本文的附加源程序中,這里不再說明。
編寫用戶空間串口通信程序
控制串口的server應用程序完成非常簡單的打包和拆包的工作,它沒有差錯控制,沒有重發機制,在實際應用中,需要加上適當的控制協議。server創建的子進程負責從串口讀取數據并把數據傳送到receivingdevice/dev/ed_rec;父進程則負責從sendingdevice/dev/ed_tx讀取需要發送的網絡數據包,然后從串口發送出去。子進程和父進程都是用輪詢方式讀取和寫入設備。Server的程序流圖如圖所示。
圖7
如果打包前的數據中有END這個字符,那么使用ESC_END代替,如果發現有ESC這個字符,那么使用ESC_ESC字符替換。在Linux下,串口名從ttyS0開始依次是ttyS1、ttyS2等。在本程序中,使用ttyS0作為通信串口。在打開ttyS0的時候,選項O_NOCTTY表示不能把本串口當成控制終端,否則用戶的鍵盤輸入信息將影響程序的執行;O_NDELAY表示打開串口的時候,程序并不關心另一端的串口是否在使用中。在Linux中,打開串口設備和打開普通文件一樣,使用的是open()系統調用。比如我么打開串口設備1也就是COM1,只需要:
兩個打包和拆包函數和SLIP協議定義的一樣,拆包函數和打包相反,這里不列舉了。
小結
本文描述的是一個非常簡單的串口上網程序,如果需要可靠的通信,增加吞吐量,可在用戶空間添加適當的網絡控制協議,也可增加數據壓縮算法。
郵件新聞資訊:
移動電郵
網絡安全
行業法規
網絡技術:
傳輸介質
華為3Com
網絡與服務器硬件
操作系統:
WindowsNT
其它操作系統
郵件服務器:
Postfix
Foxmail
James
WinMail
其它
反垃圾郵件:
服務器端反垃圾郵件
郵件客戶端軟件:
KooMail
Pegasus
其它
電子郵箱:Gmail
移動電子郵件:技術前沿
郵件網絡安全:
防火墻
數字簽名
郵件營銷:
營銷案例
郵件人才:職場
解決方案:
招標
產品評測:
客戶端
總結
以上是生活随笔為你收集整理的linux串口上网的简单实现,Linux串口上网的简单实现(3)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux和Windows栈帧机器码,栈
- 下一篇: linux添加怎么退出,linux –