當前位置:
首頁 > 最新 > 乾貨 小玩 Cyclone TCP

乾貨 小玩 Cyclone TCP

EEWORLD

電子資訊 犀利解讀

技術乾貨 每日更新

對於socket編程,如果自己講一大堆,會變得班門弄斧。所以還是直接進入重點好了。本來就想著在單片機跑下lwip,後來free叔叔介紹推薦了cyclonetcp,我個人覺得很好用,用起來很順手,而且代碼注釋等也很簡潔。

簡單說下CycloneTCP,包括了TCP和SSL兩部分,我主要用的是TCP部分,所以SSL部分也沒仔細去看。從網路介面層上看,支持了eth、wifi、usb等常用的介面,從應用層上看,支持了16種應用層協議。對於單片機來說,已經足夠很強大了。

我並沒有切入到應用層上,而是在傳輸層上入手,因為自己項目上,用的tcp client和server比較多,所以同樣在cyclontcp,我也是先試下tcp client的搭建。硬體平台是F746disco。

從底層開發上,搭建tcp client很簡單,只需要調用幾個socket介面即可通信。從官方的demo布局可以看到,每個demo都帶了freertos,而且各個相關文件都已經給你分配好。

我在這個的基礎上,建立了一些tcp client的Test任務。我在數據的收發上,自定義的自己的一個小協議。當收到幀頭是7e的時候,長度一致,check么問題的時候,我就認為是一次有效數據。

開發板上的IP分配為靜態IP,伺服器地址是我的PC的IP地址。

接下來就是配置client端

然後在while裡面不斷等待收到數據,若收到一幀數據則進行處理。

以上的底層搭建已經完成。接下來就是server端。在PC上新建一個QT工程。在UI設計上簡單布局幾個控制項。

當點擊"打開連接"的時候,會輪詢查詢本機的IP地址並顯示在ServerIP上,同時也偵聽一個埠(我的是8001)使得開發板能夠利用這個埠訪問伺服器。當伺服器被客戶端訪問時,會發出newConnection()信號,因此為該信號添加槽函數acceptConnection()

連接成功後,每次點擊相對應的控制項都會使用Socket的write函數向客戶端發送數據socket->write(data);

比如點擊發送字元串。則對應到相對應的聲明函數里。

其他功能,比如收到開發板的相關數據進行處理顯示等,後續如果有時間我會繼續完善。代碼比較簡陋,就不敢上傳了

但是可以肯定的是,cyclonetcp功能強大,注釋也很好,很適合學習與項目應用。接下來就是點屏的時候了。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 EEWORLD訂閱號 的精彩文章:

工業半導體廠商到底哪家強?

TAG:EEWORLD訂閱號 |