
Linux
_杰杰_
一个超级可爱的杰杰ღ( ´・ᴗ・` )
展开
-
如果让你设计哈希表.....
先确定选题,待写。。。原创 2021-08-03 10:06:37 · 873 阅读 · 3 评论 -
Ubuntu20 安装微信
1. 安装deepin-winegit clone "https://gitee.com/wszqkzqk/deepin-wine-for-ubuntu.git"cd deepin-wine-for-ubuntu #切换到下载目录sudo ./install.sh #执行安装2. 安装微信wget -O- https://deepin-wine.i-m.dev/setup.sh | shsudo apt-get instal原创 2021-04-23 11:10:55 · 1294 阅读 · 1 评论 -
MQTT连接到阿里云物联
连接到阿里云物联既然懂得专门连接百度天工物接入,那么连接阿里云物联其实也是一样的,因为都是基于MQTT协议进行通信的,首先打开阿里云物联:https://iot.console.aliyun.com/product,创建账号并登陆,而且阿里云物联是需要通过实名认证才能使用的。相对于百度天工物接入,阿里云物联的安全性更好,因为即使是客户端连接服务器都需要各种验证,还使用哈希加密算法进行加密。使用阿里云物联下面开始使用阿里云物联,首先在“产品”信息中创建一个产品,每个产品下允许有多个设备,产品就是设备的原创 2020-10-24 10:37:48 · 6420 阅读 · 3 评论 -
select、poll、epoll的原理与区别
文章目录前言同步I/O异步I/O阻塞I/O非阻塞I/O多路复用I/Oselectselect整个处理过程如下select函数原型:select的缺点pollepollepoll的原理epoll的操作模式epoll的函数epoll_create()epoll_ctl()epoll_wait()epoll为什么更高效前言本文讨论的开发环境是 Linux 网络io同步I/O在操作系统中,程序运行的空间分为内核空间和用户空间,用户空间所有对io操作的代码(如文件的读写、socket的收发等)都会通过系统调用原创 2020-07-02 14:32:21 · 3672 阅读 · 3 评论 -
深入了解C++多态的原理及实现方式
文章目录前言关于多态函数承载方式虚函数方式前言需要深入了解C/C++语言的基础之上再看此文章。关于多态具有多种形态,调用同一个方法会随上下文不同而产生不同的结果,多态有静态多态与动态多态两种。函数承载方式函数重载是让同一个函数(函数名字是相同的)可以根据参数不同从而实现不同的处理,之所以称之为函数重载,是因为它有多个同名的函数,而编译器进行了重载,编译器根据实参与形参的类型及个数,自动确定调用那一个函数。这是通过函数重载的方式实现多态,这种实现的方式是静态的多态,因为在编译阶段就已经知道了的。原创 2020-06-30 12:01:06 · 1258 阅读 · 1 评论 -
mqttclient连接到OneNET云平台
文章目录mqttclient连接到OneNET云平台使用OneNET测试连接手动安装相关的依赖包拉取mqttclient仓库简单介绍mqttclient仓库文件夹编译运行代码使用到的APImqttclient连接到OneNET云平台有了前面连接百度云的经验,废话不多说,直接使用OneNET,OneNET平台应该是最开放,对开发者最友好的平台了。使用OneNET首先注册与登陆OneNET,然后进入开发者中心:https://open.iot.10086.cn/develop/global/produc原创 2020-06-15 23:07:02 · 6462 阅读 · 8 评论 -
mqtt连接百度天工物接入平台
mqtt连接到百度天工物接入百度天工物接入简介物接入(IoT Hub)是面向物联网领域开发者的全托管云服务,通过主流的物联网协议(如MQTT)进行通信,可以在智能设备与云端之间建立安全的双向连接,快速实现物联网项目。支持亿级并发连接和消息数,支持海量设备与云端安全可靠的双向连接,无缝对接天工平台和百度云的各项产品和服务。物接入分为设备型和数据型两种项目类型,我们在这里使用数据型项目类型,传输一些温湿度数据,同时可以无缝对接时序数据库TSDB、物可视等,将数据实时显示出来,同时我们采用MQTT协议与云端原创 2020-06-15 23:05:09 · 4854 阅读 · 1 评论 -
一个高性能、高稳定性的跨平台MQTT客户端——mqttclient设计与实现方式
文章目录mqttclient设计与实现方式设计思想API接口MQTT客户端的核心结构mqttclient实现申请一个mqtt客户端释放已申请的mqtt客户端设置MQTT客户端的信息连接服务器订阅报文取消订阅发布报文内部线程核心的处理函数发布应答与发布完成报文的处理订阅应答报文的处理取消订阅应答报文的处理来自服务器的发布报文的处理发布收到与发布释放报文的处理mqttclient设计与实现方式设计思想整体采用分层式设计,代码实现采用异步设计方式,降低耦合。消息的处理使用回调的方式处理:用户指定订原创 2020-06-15 23:01:15 · 6716 阅读 · 4 评论 -
一个高性能、高稳定性的跨平台MQTT客户端——mqttclient配置及裁剪工具
文章目录mqttclient配置及裁剪工具salof相关的配置使用mqttclient裁剪配置工具mqttclient配置及裁剪工具MQTT_TOPIC_LEN_MAX配置客户端支持最大的主题名长度,主题是支持通配符的,如果主题太长则会被截断,默认值为64。 #define MQTT_TOPIC_LEN_MAX 64MQTT_ACK_HANDLER_NUM_MAX配置mqtt等待应答列表的最大记录个数,对于qos1、qos2服务质量有要求原创 2020-06-15 22:59:25 · 2006 阅读 · 0 评论 -
一个高性能、高稳定性的跨平台MQTT客户端——mqttclient代码生产工具介绍
文章目录mqttclient代码生产工具介绍连接参数配置订阅主题相关的代码配置发布消息相关的代码配置生成代码mqttclient代码生产工具介绍mqttclient代码生产工具主要是用于配置MQTT的参数,并且生成相应的代码,因为是可视化的配置,极易使用。地址:https://jiejietop.gitee.io/mqtt/index.html与此同时改工具页面还包含了mqttclient的API接口介绍及示例,通过它们就能知道这个工具应该配置了什么内容。连接参数配置首先连接参数代表着MQT原创 2020-06-15 22:55:44 · 1517 阅读 · 0 评论 -
腾讯云服务器部署emq
文章目录部署宝塔面板部署EMQ部署宝塔面板使用 SSH 连接工具,如宝塔远程桌面助手连接到您的 Linux 服务器后,挂载磁盘,根据系统执行相应命令开始安装(大约2分钟完成面板安装):Centos安装脚本yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh...原创 2019-08-07 14:58:32 · 1942 阅读 · 0 评论 -
一个高性能、高稳定性的跨平台MQTT客户端——mqttclient简介与使用
【开源】一个高性能、高稳定性的跨平台MQTT客户端——mqttclient简介与使用原创 2020-06-14 11:12:04 · 8978 阅读 · 5 评论 -
你不得不看的图文并茂的MQTT协议通信过程!!!
图文并茂讲解MQTT协议通信过程,深入理解MQTT协议工作过程。原创 2020-06-13 20:58:59 · 16408 阅读 · 1 评论 -
MQTT协议简介及协议原理
带你看看MQTT协议简介及协议原理原创 2020-06-13 15:24:00 · 13446 阅读 · 5 评论 -
关于Linux进程你所需要知道的一切都在这里!!
非常详细的linux进程知识点!图文并茂原创 2020-06-02 00:50:54 · 2669 阅读 · 1 评论 -
我是如何彻底解决嵌入式HTTP客户端痛点的?
文章目录前言高性能、跨平台的HTTP客户端发布http-client整体架构优势文档&说明开发的历程一些测试的例子效果解析URL(超快的,性能杠杠的)GET请求数据POST数据到服务器自动重定向处理下载109M的文件,速度杠杠的项目开源地址:前言你还在自己写HTTP协议吗?你还在找好用的HTTP客户端吗?你还在用难用移植的HTTP客户端吗?你还在苦逼的移植安全加密库吗?你还在用难用的API接口吗?你还 …高性能、跨平台的HTTP客户端发布今天,它它它它它它来了,解决所有的痛点,一个原创 2020-05-27 20:46:28 · 3883 阅读 · 10 评论 -
【libuv高效编程】libuv学习超详细教程11 —— libuv stream 流句柄解读 下
文章目录libuv系列文章stream handle 的外部APIuv_shutdown()uv_listen()uv_accept()uv_read_start()uv_read_stop()uv_write()uv_write2()函数参考例程代码获取libuv系列文章【libuv高效编程】libuv学习超详细教程1——libuv的编译与安装【libuv高效编程】libuv学习超...原创 2020-05-07 01:32:41 · 2788 阅读 · 2 评论 -
curl安装使用【超级无敌简单】
文章目录下载安装cmake编译curl安装简单使用下载从GitHub下载最新版本的 curl 源码:git clone https://github.com/curl/curl.git安装cmake一句话的事情:sudo apt-get install cmake编译curl进入curl目录下,创建一个build文件夹,用于存放编译产生的中间文件、动态库、头文件等内容:c...原创 2020-05-01 13:37:44 · 3445 阅读 · 1 评论 -
【libuv高效编程】libuv学习超详细教程10 —— libuv stream 流句柄解读
文章目录libuv系列文章stream handle数据结构内部APIuv__stream_init()uv__read()uv__write()uv__stream_io()uv__write_callbacks()外部API参考例程代码获取libuv系列文章【libuv高效编程】libuv学习超详细教程1——libuv的编译与安装【libuv高效编程】libuv学习超详细教程2—...原创 2020-04-28 21:52:53 · 2579 阅读 · 0 评论 -
【libuv高效编程】libuv学习超详细教程9——libuv async异步句柄解读
libuv系列文章【libuv高效编程】libuv学习超详细教程1——libuv的编译与安装【libuv高效编程】libuv学习超详细教程2——libuv框架初窥【libuv高效编程】libuv学习超详细教程3——libuv事件循环【libuv高效编程】libuv学习超详细教程4——libuv idle空闲句柄解读【libuv高效编程】libuv学习超详细教程5——l...原创 2020-04-24 19:37:46 · 4322 阅读 · 0 评论 -
【libuv高效编程】libuv学习超详细教程8——libuv signal 信号句柄解读
文章目录libuv系列文章linux信号Linux信号种类与描述信号的处理libuv的信号数据类型回调函数:APIuv_signal_init()uv_signal_start()uv_signal_start_oneshot()uv_signal_stop()信号的处理过程信号通知信号处理example参考例程代码获取libuv系列文章【libuv高效编程】libuv学习超详细教程1——...原创 2020-04-23 21:27:07 · 2884 阅读 · 0 评论 -
【libuv高效编程】libuv学习超详细教程7——libuv thread 线程句柄解读
从linux线程处理到libuv的线程实现,因为libuv是一个跨平台的框架,它的底层处理可以在Windows、可以在linux,所以线程的实现它也是视平台而定的。原创 2020-04-22 19:49:49 · 3554 阅读 · 0 评论 -
【libuv高效编程】libuv学习超详细教程6 ——libuv check 检查句柄解读
check handle可以被译为检查句柄,如果程序中启动了check handle后,在事件循环中,每当I/O循环退出阻塞的时候都会被执行一遍,它与prepare刚好是相互呼应的,prepare是在I/O循环进入阻塞前,check是在I/O循环退出阻塞后被调用。原创 2020-04-22 19:47:58 · 1872 阅读 · 2 评论 -
【libuv高效编程】libuv学习超详细教程5——libuv prepare 准备句柄解读
prepare handle可以被译为准备句柄,如果程序中启动了prepare handle后,那么它在每次事件循环的时候都会被执行一遍,并且在I/O轮询之前被执行,注意,虽然它的原理与idle handle差不多,但是还是有一些差别的。原创 2020-04-22 19:46:14 · 2164 阅读 · 1 评论 -
【libuv高效编程】libuv学习超详细教程4——libuv idle空闲句柄解读
文章目录libuv系列文章idle handle数据类型idle handle的回调函数APIexampleuv_idle_init()参考例程代码获取libuv系列文章【libuv高效编程】libuv学习超详细教程1——libuv的编译与安装【libuv高效编程】libuv学习超详细教程2——libuv框架初窥【libuv高效编程】libuv学习超详细教程3——libuv事件...原创 2020-04-21 22:58:03 · 3534 阅读 · 3 评论 -
【libuv高效编程】libuv学习超详细教程3——libuv事件循环
事件循环是 libuv 功能的核心部分。它的主要职责是对 I/O 进行轮询然后基于不同的事件源执行它们的回调函数。原创 2020-04-19 21:19:16 · 7318 阅读 · 5 评论 -
【libuv高效编程】libuv学习超详细教程2——libuv框架初窥
libuv的设计框架,从网络I/O看,在linux(unix)平台它可以通过网络的底层epoll作为异步的I/O处理,它的中间有一层抽象层uv__io_t;而在Windows平台可以通过IOCP...原创 2020-04-18 23:29:56 · 6455 阅读 · 1 评论 -
【libuv高效编程】libuv学习超详细教程1——libuv的编译与安装
libuv 是一个高性能的,事件驱动的I/O,并且支持多平台的网络库,接下来就手把手带你进入libuv编译安装的学习...原创 2020-04-17 19:11:45 · 13914 阅读 · 4 评论 -
一个基于socket API之上的跨平台MQTT客户端,支持qos2
整体框架备注:目前只实现了linux平台设计思想整体采用分层式设计,代码实现采用异步设计方式,降低耦合。消息的处理使用回调的方式处理:用户指定[订阅的主题]与指定[消息的处理函数]不对外产生依赖APImqttclient拥有非常简洁的api接口int mqtt_keep_alive(mqtt_client_t* c);int mqtt_init(mqtt_client_...原创 2020-01-05 19:09:39 · 2395 阅读 · 0 评论 -
CMake实战教程(二)
文章目录前言外部构建自动查找源码变量打印日志section3前言从上一篇的文章中,相信大家也了解了CMake这个东西,但是呢它不是只是看一下就能会的,这种东西还是要实践才能学会,那么如果你已经实践过了,就会体会到上一篇文章在实际中使用到底是多么的难搞,比如:生成很多垃圾文件,这是我的第一个体会…需要手动去指定编译的文件无法指定编译器,编译选项等等很多东西…如果有子目录也不能完全适用…...原创 2019-12-04 08:54:56 · 671 阅读 · 0 评论 -
CMake实战教程(一)
文章目录前言安装CMake初步了解CMake基本语法section1CMakeLists.txt分析前言在学习CMake之前,一直都是自己在手敲Makefile文件,当项目的文件一旦多了起来,写Makefile就不是那么好玩了,也曾经了解了一下autotools,但是seeed的柱哥说有cmake这个东西,所以我就去学习了,也在网上搜过对比,下面的一句话让我放弃了autotools:CMa...原创 2019-12-02 18:28:32 · 1013 阅读 · 0 评论 -
Linux常用命令
Gong Yong的Blog50个最常用的Unix/Linux命令 2014-08-20这篇文章翻译自http://www.thegeekstuff.com/2010/11/50-linux-commands/这些都是一些很常用的命令,这篇文章中每个命令都有一些简单的示例说明它的用法,对于想学习Unix/Linux的人,这些命令基本上都是需要掌握的:tar grep find ssh sed...转载 2019-05-26 23:53:27 · 624 阅读 · 0 评论 -
Linux进程的过程与状态
程序如何变成进程程序是个静态的文件,进程是一个动态的实体,进程的状态会在运行过程中改变,那么程序是如何变为一个进程的呢?通常在 Shell 中输入命令运行就包含了程序到进程转换的过程。整个转换过程主要包含以下 3 个步骤:(1)查找命令所对应程序文件的位置;(2)使用 fork()函数为之创建一个新进程;(3)在新进程中调用 exec 族函数装载程序文件,并执行程序文件的 main()函...原创 2019-06-11 23:12:31 · 348 阅读 · 0 评论 -
在Windows中使用vscode编写linux的代码自动补全
前言首先Windows下是没有linux的依赖的,因此在Windows向下编写linux的代码是无法实现自动补全的,那么解决的办法就是将linux的依赖拿到Windows上,编写程序轻松一点,然后在linux上编译即可。①要知道linux的依赖在 /usr/include 目录下,只需要把它拷贝到Windows上即可,我是通过share与Windows进行交互的,不用依赖啥网络。cp -r...原创 2019-06-04 22:13:34 · 13142 阅读 · 6 评论 -
Linux命令
查找当前文件夹下test文件并且将其删除find | grep test | xargs rm -rf原创 2019-07-08 22:16:08 · 382 阅读 · 0 评论 -
Linux下无法访解析域名的解决方法
/etc/resolv.conf这个配置文件中,一定有 nameserver关键字。作用是指定 DNS服务器的IP,不指定的话,无法通过域名来访问百度,只能敲百度服务器的IP地址来访问它。常用的 DNS服务器地址114 DNS,这应该是用户数量数一数二的公共DNS了114.114.114.114114.114.115.115阿里 AliDNS,来自阿里巴巴和马云旗下的公共DNS...原创 2019-08-08 09:55:00 · 21930 阅读 · 2 评论 -
linux内核的补丁生成与应用
文章目录修改linux内核源码生成补丁文件进入目录修改源码:查看修改的内容记录修改生成补丁文件给linux内核源码打补丁进入目录:查看git分支、版本、log确认log打补丁前确保内容没有被yocto修改,如果修改了就还原。还原打补丁修改linux内核源码生成补丁文件进入目录修改源码:$ cd /home/jiejie/linux-imx/查看修改的内容$ git status O...原创 2019-09-16 15:22:32 · 927 阅读 · 0 评论