1. 程式人生 > >嵌入式開發38,39,40天(專案3:基於A8開發板的區域網聊天工具)

嵌入式開發38,39,40天(專案3:基於A8開發板的區域網聊天工具)

開篇前言:

其實想了很久要不要寫這個專案出來,畢竟這個專案用到的特殊庫相對比較多,這也是網上那麼少嵌入式專案開發的視訊一樣,在嵌入式的世界裡,就是為了開發某個專案而裁剪硬體,裁剪系統,把不需要的全部拋棄掉,而製作成一個特製的嵌入式產品。每個系列的產品都是獨一無二的,可能你看起來表面一樣,可能內部的從硬體到軟體完全不同。

但我看到很多人對聊天特別感興趣,我還是決定把它放出來。從零說起。

視訊展示:

專案目的:

基於開發板,在區域網內,實現網路聊天,純linux-c編寫。    功能:       1)檢索線上人數,並且顯示ip到開發板上       2)對螢幕操作可以選擇交談物件       3)傳送語音和表情
      4)接收語音和表情

專案框架圖:


編譯環境搭建

1)顯示jpg圖片庫 2)錄音庫  詳細過程看文件庫移植步驟.txt

相關知識:

檔案IO
LCD屏知識
網路程式設計:udp tcp 網路程式設計函式;自定通訊協議;
系統程式設計
執行緒概念

連結串列

編寫框架:

1.圖片載入,觸控點的描繪(傳送表情的區域,單擊,終端列印或“傳送表情”的字座標)
2.上線廣播,接收反饋資訊,其它使用者加入連結串列;
3.連結串列ip顯示

表情命令:
1.sendto:sendemoji xxx.jpg


廣播命令:
sendto:broadcase

傳送錄音:

傳送方:
1.sendto buf: send_record
2.sendto buf://
2.1 開啟檔案
2.2 讀取檔案
2.3 傳送內容檔案內容(傳送校驗碼“1”)
3.sendto buf:send_record_end
3.1 關閉檔案


接收方:
1.接收到“send_record”命令
2.寫資料:
2.1 建立檔案
2.2 接收資料(接收校驗碼比對“1”)
2.3 寫檔案
3.接收到“send_record_end”命令
3.1 關閉檔案

程式碼可優化的地方:

1:udp的自定義的協議對接部分 2:檔案傳輸改為tcp協議 3:程式碼規範性,這也是我程式碼的最大問題。 4:可以加入聊天記錄  5:使用核心連結串列儲存使用者資訊 6:建立本地使用者資訊檔案 7:自動獲取本地IP功能,封裝好

本次專案發現的問題:

1:udp的單播發送訊息,路由可能會因為安全性而阻塞。 2:udp廣播,路由基都會完全放行。

專案文件下載:

相關推薦

嵌入式開發38,39,40(專案3基於A8開發區域網聊天工具)

開篇前言: 其實想了很久要不要寫這個專案出來,畢竟這個專案用到的特殊庫相對比較多,這也是網上那麼少嵌入式專案開發的視訊一樣,在嵌入式的世界裡,就是為了開發某個專案而裁剪硬體,裁剪系統,把不需要的全部拋

個人專案3四則運算

個人專案3:可以在之前基礎上實現線上答題; 答題結束後可以判斷對錯; 可以將錯題儲存起來; 設計思路:利用while語句實現選擇不同種類的答題專案;同樣利用while實現對錯的判斷。   出現問題: 不知道怎樣將錯題儲存起來; 要防止在進行選擇答題種類和繼續答題時因按錯鍵導致程式出現錯

個人專案3加強版四則運算

需求 1.實現線上答題 2.答題結束後,可以判斷對錯 3.並將錯題的結果儲存起來 設計思想 1.設計視窗:使用了dataGridView表格控制元件,4個textBox控制元件,5個button控制元件和若干Label視窗控制元件 2.程式編輯:(1)在上次的四則運算的基礎上,將四則運算的式子

Vue.js學習記錄-10-Vue去哪兒網專案實戰首頁開發-Icon + Recommend + Weekend + 細節配置補充

icons <template> <script> 採用vue-devtools瀏覽器工具外掛檢視此部分計算屬性詳情: Recommend <template> <script&

Vue.js學習記錄-9-Vue去哪兒網專案實戰首頁開發-Home + Header + Swiper

Home:首頁根元件,用於管理子元件以及資料請求 <template>:子元件管理 引入所有子元件,並進行屬性繫結(父元件向子元件傳遞資料的方式) <template> <div>

Vue.js學習記錄-8-Vue去哪兒網專案實戰首頁開發-環境搭建

專案實戰 1. 首頁開發 環境搭建 開發環境:node.js、Vue-cli腳手架工具 開發IDE:VScode 版本控制工具:Git 檢查環境搭建結果: 關於Vue-cli: Vue提供的官方命令列工具,可用於快速搭建大型單頁應用。該工具為現代化的前端開發工作流提供

4.11 實戰專案3併發爬蟲

匯入類庫 import ( "fmt" "regexp" "net/http" "io/ioutil" "strings" "sync" "

QT開發(十一)——專案實戰截圖工具

我們繼續來寫小玩意,本來寫了一個記事本,但是很無奈,功能實在是太多了,細節也需要處理的很多,所以很到一半就沒寫了,這次我們來寫一個截圖工具,先來看下UI的實現 我們要實現的功能不多,但是經典 1.新建截圖(全屏) 2.儲存截圖 3.複製圖片到系統貼上板

python3基礎教程 專案3萬能的XML

模組介紹: 在python中使用sax方式處理xml要先引入xml.sax中的parse函式,還有xml.sax.handler中的ContentHandler。 parse函式:用於解析xml檔案 幾個注意點: getattr()函式:用於返回一個物件屬性值。

vuejs 插件開發並發布到npm--(3)vue組件開發並發布

config ESS json 依賴 col 包含 desc ash 過程 一、以hyy-vshare插件開發為例 1、初始化插件項目:vue init webpack-simple hyy-vshare,目錄結構如下: 2、添加依賴:npm i; 3、啟動服務:npm

專案3乘法口訣表】程式設計序,輸出一個乘法口訣表

/* * Copyright (c) 2012, 煙臺大學計算機學院 * All rights reserved. * 作 者:解曉東 * 完成日期:2012 年 10 月 3

第五週專案3時間類(1)

問題及程式碼: /* *copyright(c)2016,煙臺大學計算機與控制工程學院 *All rights reserved. *檔名稱:test.cpp *作者:崔青青 *完成日期:2016年3

開發人員學Linux之終結篇大型系統開發經驗談

bug 架構 版本管理 質量 管控 1.前言這篇文章來源於我的一個ppt,而這個ppt是源於一個朋友的一次邀請,朋友邀請我為一個公司做一堂大約2小時的技術講座,我選定的方向是如何開發一個大型系統,在這裏我對大型系統的定義為日均PV在千萬級以上,而京東和淘寶這類則屬於巨型系統了。因此在本篇中

移動web原生開發打包,嵌入h5頁面 webApp全部都是H5開發的應用 混合APP使用第三方開發平臺從apicloud,appcan,hbuilder等開發,cordova技術打包 原生APP就是eclipse開發或者studio等工具開發

應用 手機 .com net ack 自動連接 pan 經驗 使用 論壇43213 移動端webApp兼容問題解決 談談App混合開發 Hybrid APP混合開發的一些經驗和總結 PhoneGap是一個采用HTML,CSS和JavaScript的技術,創建

高軟作業3基於原型化系統墨刀的雲筆記應用

產品經理 row 這一 設計 顯示 冗余 targe 圖片 我們 1.基於調研分析的產品原型 在上一次作業中,我們分析了七款各具特色的雲筆記軟件,分別列出了他們的長處和短處。並最終作為這一次作業的原型依據。 2.使用的原型設計工具——墨刀   墨刀是一款在線原

Project-3基於堆和迴圈桶實現 djikstra 演算法

Project-3:基於堆和迴圈桶實現 djikstra 演算法 實驗原理 堆: 堆是一種經過排序的完全二叉樹,其中任一非終端節點的資料值均不大於(或不小於)其左子節點和右子節點的值。最大堆和最小堆是二叉堆的兩種形式。最大堆:根結點的鍵值是所有堆結點鍵值

TensorFlow練手專案基於迴圈神經網路(RNN)的古詩生成器

基於迴圈神經網路(RNN)的古詩生成器 之前在手機百度上看到有個“為你寫詩”功能,能夠隨機生成古詩,當時感覺很酷炫= = 在學習了深度學習後,瞭解了一下原理,打算自己做個實現練練手,於是,就有了這個專案。文中如有瑕疵紕漏之處,還請路過的諸位大佬不

Unity開發安卓遊戲(2)基於安卓遊戲的優化方案總結!

最近專案進入收尾階段,之前對專案做了很多優化,mesh合併 ,減少DrawCall和模型骨骼以及物理計算,合併材質球,優化程式碼等等,在IOS上還好,但是Android上,試過幾款手機,從低端到高階,發現效能還是很差,所以又花了幾天來研究摸索,終於把遊戲效能搞定。記錄下來,留作以後參考。 1. 更新不透

[iOS開發專案-3] 按鈕控制元件的移動,放大縮小,左右旋轉操作

本專案是取自傳智播客的教學專案,加入筆者的修改和潤飾。 1. 專案名稱:按鈕操作 2. 專案截圖展示 3. 專案功能 點選按鈕,切換按鈕狀態 上下左右移動按鈕 放大,縮小按鈕 左右旋轉按鈕 4. 專案程式碼 #impor

專案總結3ionic3開發的App在啟動過程中部分手機出現白屏或黑屏問題之終極解決方案

問題場景:採用ionic3開發的App,當專案比較大的時候,會出現部分真機裝置在啟動的過程中有白屏或黑屏的情況。 原因預測:個別手機,尤其是安卓手機的效能比較差,App在啟動後進入首頁或登入頁前的初始化工作還沒有完成。 方案總結:在網上查過很多資料發現大部分的解決辦法都是