自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 Linux下C语言——内存拷贝函数memcpy/memmove

提到这两个函数,大家函数原型void *memcpy(void *dest, const void *src, size_t n);void *memmove(void *dest, const void *src, size_t n);

2019-05-19 16:44:59 5949

原创 Linux下C语言——结构体对齐

结构体对齐的步骤:            1、结构体各成员对齐            2、整个结构体圆整结构体对齐的特定对齐值:  ...

2019-05-17 22:56:38 1383

原创 网络socket编程实现并发服务器——多线程编程

多线程编程

2019-04-05 00:20:19 19417 1

原创 C语言——伸缩型数组成员

       最近了解到TLV协议后,开始了对其的代码实现,并在期间发现了伸缩性数组这个眼熟却手生的东东,借此机会深挖了一下这个伸缩型数组成员(flexible array member)。struct TLV_BODY // TLV报文{ short tag; // value类型 ...

2019-03-28 17:04:58 1276

原创 浅谈自定义通讯协议——TLV

       最近在做实验室的温度上报项目时,需要用到TLV来封装数据(Tag-Length-Value),然后通过客户端传送给服务器端,并作相应数据解析,再得到相应的数据。在具体了解TLV协议之前,我们先对通讯协议做一个简单的介绍。       所谓通讯协...

2019-03-28 11:14:19 4705 2

转载 看懂通信协议——TLV

注:上篇转载博客主要介绍了TLV编码逐步进化和完善。下面主要介绍TLV编码方式!TLV:TLV是指由数据的类型Tag,数据的长度Length,数据的值Value组成的结构体,几乎可以描任意数据类型,TLV的Value也可以是一个TLV结构,正因为这种嵌套的特性,可以让我们用来包装协议的实现。一、 TLV编码介绍以下将分别针对Tag、Length、Value进行解说:Tag 描述Valu...

2019-03-26 18:31:41 35873 1

转载 通信协议之序列化——TLV详解

       通信协议可以理解两个节点之间为了协同工作实现信息交换,协商一定的规则和约定,例如规定字节序,各个字段类型,使用什么压缩算法或加密算法等。常见的有tcp,udo,http,sip等常见协议。协议有流程规范和编码规范。流程如呼叫流程等信令流程,编码规范规定所有信令和数据如何打包/解包。  &nbs...

2019-03-26 16:26:16 7712 1

原创 STM32CubeMX简介及安装

STM32CubeMX简介及安装一、STM32CubeMX简介       STM32CubeMX是一个图形化的工具,也是配置和初始化C代码生成器(STM32 configuration and initialization C code generation),也就是自动生成开发初期关于芯片相关的一些初始化代码。&nb...

2019-03-26 15:53:08 6206 1

原创 网络socket编程实现并发服务器——IO多路复用

IO多路复用

2019-03-25 16:56:14 1613

原创 网络socket编程实现并发服务器——多进程编程

多进程编程一、服务器并发访问的问题       服务器按处理方式可以分为迭代服务器和并发服务器两类。平常用C写的简单Socket客户端服务器通信,服务器每次只能处理一个客户的请求,它实现简单但效率很低,通常这种服务器被称为迭代服务器。       然而在...

2019-03-24 16:19:25 4185

原创 操作系统、计算机网络杂记

操作系统一、操作系统五大功能1)进程管理:最本质是时间管理:CPU对时间进行切片,定时器(Timer)中断进程:正在运行的程序及其占用的系统资源     * 进程的五态:        创建态:程序起始状态   &nb...

2019-03-23 22:43:03 347

原创 Linux下命令小结——网络管理命令

Linux命令1、设置系统时间相关命令:        date:查看系统时间(从RTC获取)        sudo date -s +目标时间:将系统时间改为目标时间     &...

2019-03-23 17:24:24 325

原创 Linux下命令小结——权限操作

Linux命令(part2)1、umask:掩盖掉(面具),即默认掩盖掉这个权限;                    例如:0(粘贴位)0(所有者)0(组内用户)2(其他)2、chmod:a:all,...

2019-03-23 16:36:34 177

原创 Linux下命令小结——文件操作

一、linux文件系统/bin:binary 二进制 普通用户可以使用的可执行命令;/sbin:supervisor binary 管理员(root)使用的命令;/dev:device:设备 Linux下所有的设备文件都存放在/dev目录下;/home:用户目录;/lib:library 库文件        &...

2019-03-23 16:09:11 191

原创 Windows下快捷键

在现在的键盘的两边有一个标着Windows图标Windows键,简称为Win键。配合它能够快速打开一些非常实用的系统功能。但有些报纸、杂志介绍得不全。今笔者将它们一一罗列,供大家参考:1、Win键Win+F1 打开Windows的帮助文件Win+F 打开Windows的反馈中心Win+E 打开Windows的文件资源管理器Win+Break 打开Windows的系统属性窗口Win+...

2019-03-23 15:30:31 315

原创 温度上报实时监控项目——数据库

Part3 SQlite3数据库的基本使用一、程序运行结果1、服务器端注:gcc编译时一定要加上-lsqlite3选项① 服务器端未运行在后台(输出及出错均打印在屏幕上)② 服务器端运行在后台(输出及出错均打印至日志文件中上)2、客户端① 客户端未运行在后台(输出及出错信息均打印在屏幕上)② 客户端运行在后台(输出及出错均发送给日志文件上)二、SQlite3数据库基本使用...

2019-03-23 15:17:33 1264

原创 温度上报实时监控项目——服务器端

Part2 服务器一、服务器端功能要求1, 服务器程序运行在实验室Linux服务器(需要开端口找我)或同一个树莓派上(不需要开端口);2, 通过命令行指定监听的端口;3, 程序放到后台运行,并通过syslog记录程序的运行出错、调试日志;4, 程序能够捕捉kill信号正常退出;5, 服务器要支持多个客户端并发访问,可以选择多路复用、多进程或多线程任意一种实现;6, 服务器收到每个客户...

2019-03-23 12:29:37 1535

原创 温度上报实时监控项目——客户端

温度上报实时监控Part1 客户端一、客户端功能要求1、树莓派上运行socket客户端程序,每隔30秒以字符串“ID/时间/温度”形式上报 采样温度,其中ID为树莓派的编号,便于服务器端区别是哪个树莓派客户端,如“RPI0001/2019-01-05 11:40:30/30.0C”;2、通过命令行参数指定服务器IP地址和端口以及间隔采样时间;3、程序放到后台运行,并通过sy...

2019-03-22 23:40:50 1459

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除