开篇前言:

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

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

视频展示:

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: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

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

  1. 【STM32】【C】【嵌入式】分享一下我的项目经验--基于stm32桌面主从机械臂设计(二弹)

    本文为原创文章,转载需要注明转载出处 前言:嵌入式开发是相比其他IT行业是比较难的行业,它不仅需要你去掌握软件的经验,还要去学习一些硬件的知识, 它是软件和硬件的一个粘合剂,起到一个至关重要的地位 下 ...

  2. 【微信小程序开发全流程】篇章0:基于JavaScript开发的校园综合类微信小程序的概览

    基于JavaScript开发的校园综合类微信小程序的概览 本文仅供学习,未经同意请勿转载 一些说明:上述项目来源于笔者我本科大三阶段2020年电子设计课程项目,在这个项目中,我主要是负责的部分有前端, ...

  3. java 快递项目_基于SpringBoot开发的Java快递代拿系统

    该项目基于 [基于SSM开发的Java快递代拿系统] 项目全面升级,使用当前最为流行的 SpringBoot 框架,相关技术栈全面更新!是您深入学习 SpringBoot 开发的最佳实践! 相关技术栈 ...

  4. 微信小程序开发15 项目实战 基于云开发开发一个在线商城小程序

    在学完前 4 个模块之后,我相信你会对微信小程序的开发有一个全新的认识.在前面 3 个模块中,俊鹏分别从微信小程序内在的运行原理,小程序工程化开发以及具体实践层面,深度讲解了微信小程序开发所必要的知识 ...

  5. 个人博客项目开发总结(一) 项目架构及后端开发

    一.项目架构 1.技术栈介绍 (1)后端 SpringBoot2:后端服务开发框架 MyBatis:数据库交互与管理 Redis:数据缓存 Shiro:身份与权限管理 JWT:前后端分离令牌 Quar ...

  6. 项目实战 | 基于RK3566开发板实现USB摄像头推流(ffmpeg+nginx)

    文章目录 环境说明 一.摄像头推流架构 1. 什么是推流 2. 最简单的推流架构 3. 最简单的推流架构实现 二.USB摄像头捕获功能实现 1. 硬件测试 1.1. video设备节点 1.2. 摄像 ...

  7. 局域网聊天工具FreeChat 1.0 开发日志

    前天把Beta发出来了:http://bearocean.cnblogs.com/archive/2006/01/18/319310.html 现在的是1.0 点击可以下载所有的代码和可执行文件:/F ...

  8. Android 应用开发(1)---Android项目架构搭建

    Android项目架构搭建 1. 前言 安卓属于小团队开发,架构的重要性在很多公司其实不是那么的明显,加上现在的开源框架层出不穷,更好的帮助我们上手android项目的开发.我前两年也在公司主导过项目 ...

  9. WEB前端项目实战/酒仙网开发-李强强-专题视频课程

    WEB前端项目实战/酒仙网开发-204人已学习 课程介绍         WEB前端项目实战/酒仙网开发 课程收益     WEB前端项目实战/酒仙网开发 讲师介绍     李强强 更多讲师课程    ...

最新文章

  1. php权限二进制,了解二进制权限,二进制权限的应用(PHP演示)
  2. Centos7+nginx1.12+mysql5.7+php7环境安装
  3. ARM学习笔记7——乘法指令
  4. 基于centos7系统mongodb3.,4.4安装
  5. DOMException: Failed to execute ‘appendChild‘ on ‘Node‘: This node type does
  6. mysql master-user_【MySQL】MySQL5.6数据库基于binlog主从(Master/Slave)同步安装与配置详解...
  7. RK3308(5)---编译根文件系统
  8. malloc 和free设计
  9. Extmail企业邮箱构建指南
  10. 《自己动手写网络爬虫》读书笔记——队列与集合
  11. 怎么才能打开dwg图纸?
  12. 使用wireshark抓包获取湖北电信校园网飞Young宽带客户端加密后的账号密码
  13. Viojs P1484 ISBN号码
  14. pyqt5-事件机制
  15. DES算法实现S盒替换
  16. 英国脱欧或利好中国光伏企业
  17. python大数据培训班学费
  18. numpy的array数组的数据升维与降维使用方法自学总结
  19. 主要的CMS(内容管理系统)提供商
  20. Arduino笔记实验(初级阶段)—火焰传感器+有源蜂鸣器实验

热门文章

  1. 求个大lao帮忙写个c#窗体小项目,可以有偿
  2. 卷积层的相关概念 与 卷积层输出图片大小计算
  3. Python使用openpyxl库操作Excel之(一)创建并保存一个Excel文件
  4. 从零开始学USB(十八、USB的class)
  5. 如何取消计算机待机时间,怎样设置电脑待机时间【图文教程】
  6. 一文带你了解python是什么?能做什么?为什么要学?
  7. Springboot 整合 jasypt 实现配置文件敏感信息加密,详细步骤
  8. 现货贵金属白银的机会绝对会敲两次门
  9. 顾家北雅思写作笔记_Task2
  10. 用于身份验证的生物识别技术指纹识别相关情况解析方案