嵌入式开发38,39,40天(项目3:基于A8开发板的局域网聊天工具)
开篇前言:
其实想了很久要不要写这个项目出来,毕竟这个项目用到的特殊库相对比较多,这也是网上那么少嵌入式项目开发的视频一样,在嵌入式的世界里,就是为了开发某个项目而裁剪硬件,裁剪系统,把不需要的全部抛弃掉,而制作成一个特制的嵌入式产品。每个系列的产品都是独一无二的,可能你看起来表面一样,可能内部的从硬件到软件完全不同。
但我看到很多人对聊天特别感兴趣,我还是决定把它放出来。从零说起。
视频展示:
.php/sid/XMTcxODI1NzE2MA==/v.swf
项目目的:
基于开发板,在局域网内,实现网络聊天,纯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广播,路由 本 基都会完全放行。项目文档下载:
=3080466177&uk=2772267903