- 博客(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
6561
原创 C语言——伸缩型数组成员
最近了解到TLV协议后,开始了对其的代码实现,并在期间发现了伸缩性数组这个眼熟却手生的东东,借此机会深挖了一下这个伸缩型数组成员(flexible array member)。struct TLV_BODY // TLV报文{ short tag; // value类型 ...
2019-03-28 17:04:58
1441
原创 浅谈自定义通讯协议——TLV
最近在做实验室的温度上报项目时,需要用到TLV来封装数据(Tag-Length-Value),然后通过客户端传送给服务器端,并作相应数据解析,再得到相应的数据。在具体了解TLV协议之前,我们先对通讯协议做一个简单的介绍。 所谓通讯协...
2019-03-28 11:14:19
5321
2
转载 看懂通信协议——TLV
注:上篇转载博客主要介绍了TLV编码逐步进化和完善。下面主要介绍TLV编码方式!TLV:TLV是指由数据的类型Tag,数据的长度Length,数据的值Value组成的结构体,几乎可以描任意数据类型,TLV的Value也可以是一个TLV结构,正因为这种嵌套的特性,可以让我们用来包装协议的实现。一、 TLV编码介绍以下将分别针对Tag、Length、Value进行解说:Tag 描述Valu...
2019-03-26 18:31:41
38386
1
转载 通信协议之序列化——TLV详解
通信协议可以理解两个节点之间为了协同工作实现信息交换,协商一定的规则和约定,例如规定字节序,各个字段类型,使用什么压缩算法或加密算法等。常见的有tcp,udo,http,sip等常见协议。协议有流程规范和编码规范。流程如呼叫流程等信令流程,编码规范规定所有信令和数据如何打包/解包。 &nbs...
2019-03-26 16:26:16
9288
1
原创 STM32CubeMX简介及安装
STM32CubeMX简介及安装一、STM32CubeMX简介 STM32CubeMX是一个图形化的工具,也是配置和初始化C代码生成器(STM32 configuration and initialization C code generation),也就是自动生成开发初期关于芯片相关的一些初始化代码。&nb...
2019-03-26 15:53:08
6921
2
原创 网络socket编程实现并发服务器——多进程编程
多进程编程一、服务器并发访问的问题 服务器按处理方式可以分为迭代服务器和并发服务器两类。平常用C写的简单Socket客户端服务器通信,服务器每次只能处理一个客户的请求,它实现简单但效率很低,通常这种服务器被称为迭代服务器。 然而在...
2019-03-24 16:19:25
4450
原创 操作系统、计算机网络杂记
操作系统一、操作系统五大功能1)进程管理:最本质是时间管理:CPU对时间进行切片,定时器(Timer)中断进程:正在运行的程序及其占用的系统资源 * 进程的五态: 创建态:程序起始状态 &nb...
2019-03-23 22:43:03
453
原创 Linux下命令小结——网络管理命令
Linux命令1、设置系统时间相关命令: date:查看系统时间(从RTC获取) sudo date -s +目标时间:将系统时间改为目标时间 &...
2019-03-23 17:24:24
411
原创 Linux下命令小结——权限操作
Linux命令(part2)1、umask:掩盖掉(面具),即默认掩盖掉这个权限; 例如:0(粘贴位)0(所有者)0(组内用户)2(其他)2、chmod:a:all,...
2019-03-23 16:36:34
387
原创 Linux下命令小结——文件操作
一、linux文件系统/bin:binary 二进制 普通用户可以使用的可执行命令;/sbin:supervisor binary 管理员(root)使用的命令;/dev:device:设备 Linux下所有的设备文件都存放在/dev目录下;/home:用户目录;/lib:library 库文件 &...
2019-03-23 16:09:11
225
原创 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
371
原创 温度上报实时监控项目——数据库
Part3 SQlite3数据库的基本使用一、程序运行结果1、服务器端注:gcc编译时一定要加上-lsqlite3选项① 服务器端未运行在后台(输出及出错均打印在屏幕上)② 服务器端运行在后台(输出及出错均打印至日志文件中上)2、客户端① 客户端未运行在后台(输出及出错信息均打印在屏幕上)② 客户端运行在后台(输出及出错均发送给日志文件上)二、SQlite3数据库基本使用...
2019-03-23 15:17:33
1356
原创 温度上报实时监控项目——服务器端
Part2 服务器一、服务器端功能要求1, 服务器程序运行在实验室Linux服务器(需要开端口找我)或同一个树莓派上(不需要开端口);2, 通过命令行指定监听的端口;3, 程序放到后台运行,并通过syslog记录程序的运行出错、调试日志;4, 程序能够捕捉kill信号正常退出;5, 服务器要支持多个客户端并发访问,可以选择多路复用、多进程或多线程任意一种实现;6, 服务器收到每个客户...
2019-03-23 12:29:37
1635
原创 温度上报实时监控项目——客户端
温度上报实时监控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
1696
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人