您的位置:首页 > 其它

嵌入式开发38,39,40天(项目3:基于A8开发板的局域网聊天工具)

2016-09-06 20:14 232 查看

开篇前言:

其实想了很久要不要写这个项目出来,毕竟这个项目用到的特殊库相对比较多,这也是网上那么少嵌入式项目开发的视频一样,在嵌入式的世界里,就是为了开发某个项目而裁剪硬件,裁剪系统,把不需要的全部抛弃掉,而制作成一个特制的嵌入式产品。每个系列的产品都是独一无二的,可能你看起来表面一样,可能内部的从硬件到软件完全不同。

但我看到很多人对聊天特别感兴趣,我还是决定把它放出来。从零说起。

视频展示:

http://player.youku.com/player.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:
9b54
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广播,路由本基都会完全放行。

项目文档下载:

http://pan.baidu.com/share/link?shareid=3080466177&uk=2772267903
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: