自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 防火墙基础知识

最近学习了防火墙的有关知识,想通过一篇文章来总结一下学习内容…有人提出费曼学习法,是一种使人提起兴趣的有效方法:即把复杂的道理,专业的知识和技术用通俗有趣的话语讲清楚,这可不单单是个提高兴趣的过程~它甚至可以一直使人记忆犹新…一、为什么会有防火墙的存在?我们都知道内网和外网之间是可以交互通信的,那么什么是内网,什么是外网?一般都说局域网是内网,广域网是外网,这是个比较笼统的概念。其实内网和外网是一个相对存在的概念:假如家里内部有一两台电脑的局域网,而小区有覆盖范围比较大的一片网络区域,那么家庭内部的网络

2022-01-08 17:18:31 2346

原创 计算机网络体系结构——TCP/IP五层协议

迎接困难的前提是克服恐惧什么是TCP/IP协议?在计算机网络中把计算机的层次结构模型和各层协议的集合称为计算机网络的体系结构。也就是说:计算机网络的体系结构就是这个计算机网络及其部件所应完成功能的精确定义,体系结构是抽象的,实现过程却很具体,是真正在运行的计算机硬件和软件。使用层次结构设计计算机网络的体系结构...

2021-08-19 09:38:37 4509

原创 TCP/IP协议——三路握手、四路挥手

1、TCP三路握手连接TCP通过三路握手来建立连接,建立一个TCP连接时,需要客户端和服务器端总共发送三个包以确认来凝结的建立,在socket编程中,这一过程由客户端执行connect来触发,TCP是面向字节流的,通过TCP传送的字节流中每个字节都是按顺序编号,Sequence Number字段值指的是本报文段数据的第一个字节的序号,Acknowledgement Number 是期望收到对方下一个报文段的第一个数据字节的序号。offset:占4位,TCP报文段报头长度包括固定的20字节和TCP

2021-08-18 22:10:48 365

原创 基于树莓派SHT20温湿度采样

上一篇介绍了i2c协议,SHT20是使用标准的i2c接口的温湿度传感器,我们首先要完成树莓派与SHT20传感器的连接:使能内核I2C驱动模块:liruiyan@cloud-ubuntu18:~$ sudo raspi-config重启树莓派,系统启动之后会自动安装i2c的相关驱动:liruiyan@cloud-ubuntu18:~$ sudo rebootliruiyan@cloud-ubuntu18:~$ sudo apt-get install i2c-toolsliruiyan

2021-08-13 11:21:48 486

原创 i2c协议

i2c协议(集成电路总线)是一种串行通信总线,广泛用于微控制器和传感器,显示器,iot设备等,有SCL(串行时间线)和SDA(串行数据线)两条总线,均可进行双向传输,对波特率没有严格的要求,所有组件存在简单的主/从关系。**主机:**在IIC总线通信时,提供时钟信号,对总线时序进行控制的器件,主机负责总线上各个设备信息的传输控制,检测并协调数据的发送和接收。主机对整个数据传输具有绝对的控制权,其他设备只对主机发送的控制信息作出响应。如果在IIC系统中只有一个MCU,那么由MCU担任主机。**从机:*

2021-08-13 00:46:27 282

原创 数据结构——链表

1、什么是链表?链表就是结构体变量与结构体变量连接在一起形成的一串表如下图创建一个静态链表:代码如下:#include <stdio.h>struct Node{ int data; //数据域 struct Node* next; //指针域};int main(){ /*静态链表*/ struct Node Node1={1,NULL}; //创建的结构体变量 struct Node

2021-08-10 16:42:56 235

原创 Linux复习(1)——Linux下根目录介绍及文件类型

去微软推哦

2021-08-01 17:19:41 247

原创 野指针、指针数组、数组指针

托福成绩回报v空间和规范

2021-08-01 16:07:59 177

原创 二分查找法

如果我们在一堆数组中需要查找某一个元素,一般情况下我们需要在所有元素中一个一个对比,当我们将数组排序好之后,就不需要这么直接笨拙的办法了,由此我们可以用二分查找法(也叫折半查找)进行查找我们需要的元素二分查找法的使用前提是:数组已经排序好了。假设我们这里使用的是升序排序,那么二分查找法的基本原理就是:将数组中第一个元素设置为low,最后一个元素设置为high,中间元素设置为mid;设置我们要查找的数组为关键字key;将关键字key与中间元素mid进行比较,如果key<mid:如果key=

2021-07-27 21:58:23 180

原创 数据结构基础学习——快速排序

快速排序(quick sort)是从待排序序列中选取一个关键字key,一般取第一个元素,通过一轮排序将待排序列分割为两部分:从后往前遍历:即从后往前把每个数字和关键字进行比较,如果数组中数据小于key,就将数组依次放到关键字左边,然后接着从前往后遍历,如果数组中的数据大于了key,那么就将从后往前的第一个比较过数据位置替换。直到左右两边的位置重合,说明key就找到了正确的位置,每次循环就能找到一个数的正确位置然后将key左右两边的数据分为两组,递归调用自己。如果你想更直观的去理解快速排序的思想

2021-07-27 21:13:34 414

原创 【MQTT学习5】Linux下用mosquitto库实现与阿里云通信

看这篇博文之前。建议大家看看我前两篇博文MQTT学习3MQTT学习4,1、在Linux下的服务器需要订阅消息,阿里云才能给其发布消息,订阅命令与阿里云控制台的设备信息有关(详细请看上一篇博客mosquitto安装):以上是在阿里云控制台双肩设备的时候保存下来的信息,Linux下订阅消息的命令:mosquitto_sub -h ${ProductKey}.iot-as-mqtt.cn-shanghai.aliyuncs.com -p 1883 -t "/sys/${ProductKey}/${Devic

2021-07-22 13:33:26 480

原创 算法中的时间复杂度和空间复杂度

利用算法编写程序已经称为完成计算机某项工作的重要指标,它可以对计算机程序的每个对象和处理规则给出正确详尽的描述,算法可以理解为基本元素按及规定的运算顺序构成的完整解题步骤,算法特征:有穷性:一个算法必须保证执行有限步之后结束;确切性:算法的每个步骤必须进行明确的定义;输入:一个算法应该有0个或多个输入,0个输入就是算法本身定义了初始条件;输出:一个算法应该有一个或多个输出,以反应输入数据加工后的结果,没有输出的算法毫无意义;可行性:算法原则上可以精确运行且手写有限次之后即可完成。复杂度可以

2021-07-22 11:03:30 189

原创 数据结构基础学习——直接插入排序

插入排序的概念:在待排关键字中,每次按顺序取出一个元素m暂存,然后从取出的待排关键字m之前的关键字n开始扫描,如果关键字n大于待排关键字m,则将关键字n后移一位;,然后再从待排关键字m之前取关键字进行比较,循环进行上述操作,直到所有关键字有序为止。需要注意的是:插入排序的思想是数组有序,然后将无序的部分循环插入到已有序的序列中;话不多说,上代码!#include <stdio.h>void Insert(int k[],int n) //默认需要排序的关键字为整型{ i

2021-07-21 21:54:53 181

原创 数据结构基础学习——冒泡排序

简而言之,冒泡排序(bubbleSort)就是对两个相邻的关键字进行顺序比对,如果顺序则不变,如果反序则交换,直到没有反序的关键字记录为止。

2021-07-21 19:04:51 278

原创 git版本控制系统——托管代码、不怕删库(2)

上篇博客写了关于git版本控制系统的介绍以及git下创建个人仓库,因为最近完成了阿里云iot基于MQTT完成互联通信,所以为了防止删库,准备把代码托管到最近的git仓库下,并借此机会写一篇博客记录:...

2021-07-19 16:52:58 119

原创 git版本控制系统——托管代码、不怕删库(1)

版本控制系统是一种软件技巧,是在开发过程中确保由不同人编辑的同意档案都得到更新。目前常见的版本控制系统由CVS、Git、Mercural、Subversion等等。git版本控制系统是目前绝大部分公司和项目使用的git管理,很多网站都提供了源码托管的svn、git服务器。因为目前绝大多数公司和项目都是用git管理,所以支持svn的托管服务器少很多了。GitHub是一个面向开源及私有软件项目的托管平台,...

2021-07-19 12:43:20 221

原创 【MQTT学习5】Linux下iniparser库的下载和使用

1、iniparser库的概念iniparser是一个C语言库,是针对ini配置文件的开源解析器。ini文件则是一些系统或者软件的配置文件。 iniparser可以对配置文件进行解析、添加、修改、删除等操作。2、iniparser的安装1、下载iniparserwget https://codeload.github.com/ndevilla/iniparser/tar.gz/refs/tags/v4.1 -O iniparserv4.1.tar.gz2、解压tar -zxvf inipars

2021-07-14 11:22:31 429 1

原创 数据结构——排序算法

数据结构这门只是本身比较枯燥,以下是用通俗易懂的语言去学习和理解排序。1、概念类似于成绩排名一样按照关键字之间的大小关系排序,对同一记录集合,针对不同的关键字进行排序可以得到不同序列。排序问题中通常将数据元素称为记录,输入的一个记录集合,排序后输出的也是一个记录集合,这种排序是一种线性操作。2、排序的稳定性在排序中的两条记录m、n,且m排序和n排序不相等,排序前规定m领先于n,如果排序后m仍然n,则属于稳定,否则就是不稳定排序。3、影响排序的三个要素排序分为内排序和外排序内排序:在内存中排

2021-07-11 12:30:24 564 1

原创 流程图、数据关系绘图神器yEd

yed是一款免费但是功能强大的图表软件,它的功能类似于visio,以交互的方式创建流程图、UML图、家族树、网络图等;yed可以自动通过算法将混乱排序层次结构图、树图网络图商业流程等等,我们可以使用预定义的形状和符号等来编辑UML和BPMN,也可以导入创建自己的图形,通过拖放交互式绘制图表,或者导入复杂的数据集;也可以导入各种文件类型,包括JPEG、SVG、PDF、XML等。这些格式都可以用在我们的个人文档或者网站中,它可以在Windows、MacOS、Linux上运行。1、yed工具安装:在https

2021-07-09 20:04:13 3529

原创 【MQTT学习4】Mosquitto在树莓派安装

一、secureCRT工具中安装mosquitto前提条件:secureCRT连接树莓派或者自己的服务器;1、在http://mosquitto.org/files/source/下载mosquitto源码,我选择的是1.6.9版本;复制其链接地址2、树莓派下下载:3、解压压缩包tar -xzvf mosquitto-1.6.9.tar.gz4、进入目录cd mosquitto-1.6.9/5、在mosquitto文件夹下我们可以找到config.mk,这里包含了所有mosqu

2021-07-08 16:35:26 919

原创 【MQTT学习3】阿里云iot平台实现双向通信--mqtt.fx接入物联网平台及测试

结合上一篇博文,我们在阿里云控制台对服务器端的配置已经完成,下面我们静茹对mqtt.fx1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsimport warningswarnings.filterwarnings('ignore')import sslssl._create_default_https_context = ssl.

2021-07-07 22:44:24 1001

原创 【MQTT学习2】阿里云iot平台实现双向通信--控制台创建产品

文章目录2.读入数据总结https://www.aliyun.com/?utm_content=se_1000301881通过该网址,进入阿里云官网进行注册并登录,单击“产品与服务”搜索框直接搜索“物联网平台”。在实例概览中单击公共实例,单击产品-创建产品;根据自己需求填写内容,要注意节点类型和联网里面的选项,自己定义产品名称和分类,单击确认,返回查看自己创建的产品,可以查看创建的产品详细信息;单击“功能定义”,进行“编辑草稿”。单击“添加标准功能”,单击“搜索类型”,搜索

2021-07-07 21:48:11 421

原创 【MQTT学习1】MQTT协议的基本了解

文章目录前言一、MQTT基本概念二、MQTT协议特点三、MQTT协议原理1.MQTT协议实现方式2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、MQTT基本概念MQTT(Message Queuing Telemetry Transport,消息队列传输协议):是一种基于发布/订阅模式的“轻量级”通讯协议,该协议构

2021-07-05 15:12:38 532

原创 死锁

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、死锁的概念二、产生死锁的原因和必要条件1.产生死锁的原因2.产生死锁的必要条件三.解决死锁问题的策略总结前言操作系统的基本特征是并发和共享,系统允许多个进程并发执行,并且共享系统资源,为了最大限度的利用系统资源,操作系统应采用动态分配的策略,然而采用这种策略时,如果分配不当,可能会出现进程之间互相等待资源又都不能向前推进的情况,即造成进程相互死等的局面。事实上,不同进程对资源的申请可能按照某种先后次序得到部分满足,这

2021-05-11 19:55:11 118

原创 Linux下下载和安装SQlite3及简单使用

文章目录前言一、下载并安装SQlite二、使用步骤1.引入库2.读入数据总结前言这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。一、下载并安装SQlite下载网址:SQlite官网下载进入官网复制链接地址在Linux下载:wget https://www.sqlite.org/2021/sqlite-autoconf-3350400.tar.gz解压: tar -xzvf sqlit

2021-04-15 21:03:57 4406

原创 Linux下的动态库和静态库

文章目录前言一、什么是库?二、静态库和动态库1.静态库2.动态库3.静态库制作总结前言在Linux中,我们将常用到一些库文件来实现我们想要的功能,那么源代码在可执行程序之间起到了什么作用?不管是windows还是Linux中都存在这大量的库文件,这本身就是一种可以执行代码的二进制文件。而作为初学者我们如何更加通俗易懂的理解Linux中的库文件以及静态库和动态库?以下是本篇文章正文内容,下面案例可供参考一、什么是库?库是用来把相似函数打包在一个单元中。库就形成了一个资源箱,打包的单元就可以被其他人使

2021-04-15 19:07:30 240

原创 Linux下文件I/O系统调用及读取树莓派DS18B20探测的温度

文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as npimport p

2021-04-07 20:02:19 188

原创 进程间通信------共享内存

文章目录前言一、什么是共享内存?二、共享内存用到的函数1.ftok () 函数2.shmget () 函数3.shmat () 函数4.shmdt () 函数5.shmctl () 函数共享内存在进程间通信使用的示例1、创建一个student结构体共享内存并更新里面的成员内容:前言基于上一篇博文,共享内存也是进程间通信的另一种方法,共享内存往往是和其他通信机制配合使用来实现进程间的相互通信。以下是本篇文章正文内容,下面案例可供参考一、什么是共享内存?共享内存就是在内存中划出一块区域作为公共区域,允

2021-04-03 00:07:21 271

原创 进程间通信------消息队列

文章目录前言一、什么是消息队列?二、消息队列使用的函数1. ftok()函数2、msgget函数总结前言消息队列是进程间通信的最主要方法之一,相比于其他方法而言,信号队列成功克服了信号传递信息少,管道只能承载无格式字节流以及缓冲区大小受限等缺点。在多进程之间需要协同处理某个任务时能够合理的进行进程间的同步以及数据交流。以下是本篇文章正文内容,下面案例可供参考一、什么是消息队列?消息队列(Message Queue,简称MQ)是由内核管理的消息链接表,由消息队列标识符标识,标识符简称队列ID。消

2021-03-31 00:54:37 2790 11

原创 如何理解C语言中的main函数

提示:第一次写博客,所以决定从比较简单的maan函数开始文章目录前言一、关于 main函数的标准定义1、void man()2、C中关于main()的标准二、使用步骤1.引入库2.读入数据总结前言以下文章对C语言中的 main 函数进行了总结,下面案例可供参考,我将在Linux操作系统下展示示例代码及其运行结果。一、关于 main函数的标准定义1、void man()C语言中对void main ()并未定义,但是,main函数在没有任何参数和不返回任何信息的函数原型为void main()

2021-03-28 11:57:57 1511 1

空空如也

空空如也

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

TA关注的人

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