自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(440)
  • 资源 (121)
  • 问答 (1)
  • 收藏
  • 关注

原创 彻底搞懂自动驾驶中间件

彻底搞懂自动驾驶中间件“调度”①:从哪里开始着手设计彻底搞懂自动驾驶中间件的“调度”②: 由浅入深,五张图勾绘一套完整调度系统

2024-03-07 17:02:21 404

原创 RTI 核心库 入门指南

RTI Connext DDS

2023-09-10 09:32:42 157

原创 RTI connext 初级入门

RTI® Connext® DDS是一个连接框架,用于构建具有高性能和可扩展性要求的分布式应用程序。它包括以下组件:为您提供 API 的SDK,可帮助您使用本文档中描述的通信模式发送和接收数据(请参阅后续步骤)。这些 API 允许您将自己的应用程序连接到数据总线上的其他应用程序。帮助您可视化数据和调试分布式系统的工具。可以在系统中执行专用功能的基础设施服务,例如记录、桥接和持久数据。

2023-09-07 14:30:13 275

原创 深入分析 RTPS协议

在我们上网时难免会因为这样那样的问题对通信产生疑问。当我们产生了疑问之后,这里推荐使用wireshark进行抓包分析。不是吹牛,wireshark真的是一款实用有效的必备“良药”。wireshark是最流行的网络嗅探器之一,能在多种平台上抓取和分析网络包,windows/Linux/Mac等,拥有非常友好的界面。追溯大学期间的《计算机网络》,就是下面这本书。全靠死记硬背才把OSI七层模型,TCP/IP五层模型(也有说是四层模型,没关系)记下来,考完试然后就又忘记了。

2023-03-24 20:03:36 1457 1

原创 gdb使用

gdb的使用 普通的使用方式

2022-12-30 16:35:27 162

原创 top命令获取 线程cpu占用率

通过top命令获取 线程 cpu占用率

2022-12-30 16:14:19 567

原创 linux 设置settimeofday 失效

settimeofday

2022-06-16 14:54:34 1069

原创 linux c setsockopt 设置ttl

TTLTTL是 Time To Live的缩写,该字段指定IP包被路由器丢弃之前允许通过的最大网段数量。TTL是IPv4包头的一个8 bit字段.在IPv4包头中TTL是一个8 bit字段,它位于IPv4包的第9个字节。如下图所示,每一行表示 32 bit(4字节),位从0开始编号,即0~31。TTL的作用是限制IP数据包在计算机网络中的存在的时间。TTL的最大值是255,TTL的一个推荐值是64.虽然TTL从字面上翻译,是可以存活的时间,但实际上TTL是IP数据包在计算机网..

2021-12-21 09:54:28 2306

原创 ubuntu 解压deb

ar -x libstdc++6_4.7.2-5_i386.deb这种压缩包是两层压缩,外面是xz压缩方式,里层是tar压缩方式:$xz -d ***.tar.xz$tar -xvf ***.tartar -zxvf data.tar.gz

2021-11-05 14:44:06 1065

原创 ipfrag_low_thresh,ipfrag_high_thresh

没有正确重组的包都需要存在reassembly buffer里面,存的数据包数量超过reassembly buffer的上限后自然会被丢弃。所以当使用 netstat -s 命令发现很多 reassembles failed ,则需要调整 reassembly buffer 的大小,该大小由下面两个系统参数控制:/proc/sys/net/ipv4/ipfrag_low_thresh15728640/proc/sys/net/ipv4/ipfrag_high_th...

2021-10-30 08:41:28 1066

原创 IP 分片重组三重奏

linux内核协议栈 IPv4分片重组Ⅰ之相关数据结构https://wangquan.blog.csdn.net/article/details/109228044linux内核协议栈 IPv4分片重组Ⅱ之 ip_defrag() 接口https://wangquan.blog.csdn.net/article/details/109235276linux内核协议栈 IPv4分片重组Ⅲ之分片回收和重组https://wangquan.blog.csdn.net/articl..

2021-09-03 17:43:35 226

转载 iptables -A INPUT -f -j DROP 丢弃碎片规则无效

参考网址:https://ask.csdn.net/questions/1059469练习iptables的攻击规则,发现如下的命令无效。iptabled -A INPUT -f -j DROP测试win10: 192.168.0.2linux: 192.168.0.5测试1:无分片的报文win10# ping 192.168.0.5 -->可以ping通 测试2:带分片的报文win10# ping 192.168.0.5 -l 3000 -->可以ping通 测试3:

2021-09-01 19:32:42 1536

原创 车载以太网三连篇

AVB简介--第一篇:概述http://blog.coderhuo.tech/2020/03/22/AVB_summury/AVB简介--第二篇:gPTP简介http://blog.coderhuo.tech/2020/04/05/gptp_summury/AVB简介--第三篇:AVTP简介http://blog.coderhuo.tech/2020/04/12/avtp_summury/...

2021-08-31 11:31:13 176

原创 使用send ip 构建icmp一个 分片包

发送任意IP数据包的命令行工具:SendIPhttps://www.open-open.com/lib/view/open1429781017854.htmlsendip发包https://www.cnblogs.com/jeasonrun/p/4206427.htmlsendip工具详解https://www.cnblogs.com/lldxz/p/11738702.html【工具】ubuntu16安装sendip发包工具,模拟发送tcp/udp/icmp报文https:/..

2021-08-26 17:47:23 649

转载 Linux中arp表的老化机制

转发网址:https://www.cnblogs.com/lsgxeva/p/13749751.htmlLinux内核网络协议栈中自动维护着一堆网络协议,这堆网络协议在内核中也是不同的存在,对于arp,Linux内核就提供了一种缓存机制来维护这张表。实际的使用场景是,网络设备维护的arp表与内核维护的arp表相同步,一旦有变化,便通过钩子通知到上层的arp模块。但对于网络设备的arp模块来说,还需要实现一个arp老化时间的功能,这个功能的实现便也依靠了linux内核的arp表老化。内核是如何维护

2021-08-20 10:05:58 3405

原创 为什么tcp的TIME_WAIT状态要维持2MSL

https://cloud.tencent.com/developer/article/1450264?from=14588

2021-08-15 09:40:45 104

转载 CMake使用总结(一)

参考https://www.cnblogs.com/hackcode/p/6050159.html当我们在写CMakeLists.txt文件时,常常会搞不明白link_directories, LINK_LIBRARIES, target_link_libraries这3者的区别,下面就其详细介绍:INCLUDE_DIRECTORIES(添加头文件目录) 它相当于g++选项中的-I参数的作用,也相当于环境变量中增加路径到CPLUS_INCLUDE_PATH变量的作用(这里特指c++。c和Java

2021-08-09 20:51:13 128

原创 Cmake 比较好的博客

https://www.cnblogs.com/coderfenghc/archive/2012/07/08/2581734.htmlhttps://www.cnblogs.com/coderfenghc/archive/2012/07/11/2585616.htmlhttps://www.cnblogs.com/coderfenghc/archive/2012/07/14/2591135.html

2021-08-08 11:26:37 96

原创 TSN详解

http://iiot.cechina.cn/20/0218/09/20200218092258.htm

2021-08-06 16:58:54 756

原创 docker常用操作

启动dockersudo service docker start查看启动的docker镜像sudo docker images查看启动的docker实例化对象sudo docker ps -a删除docker实例化对象sudo docker rm tag值sudo docker ps -aCONTAINER ID IMAGE COMM...

2021-08-03 14:30:27 154

原创 多线程程序设计的常见坑

i++大致分为三个步骤:1、从内存读出i的值到寄存器2、操作寄存器加13、将寄存器值写到i内存多个线程去操作同一个全局变量的时候,可能某个线程在第二步的时候切换到另一个线程,这样就导致少加了。比如线程A 在i=1 的时候在第二步,这个时候寄存器加1值为2,在这个时候切换到线程B ,由于线程A还没有把2写到i里面,使用B读出来还是1,自增写到i里面,i为2,在切换到线程A,线程A将寄存器里面的2写到i,这样就少加了一次。...

2021-08-03 14:24:42 89

转载 TCP/IP详解 第七章 防火墙和网络地址转换(4) iptables防火墙的raw表

mangle-->nat-->filter举例来说:如果PRROUTING链上,即有mangle表,也有nat表,那么先由mangle处理,然后由nat表处理RAW表只使用在PREROUTING链和OUTPUT链上,因为优先级最高,从而可以对收到的数据包在连接跟踪前进行处理。一但用户使用了RAW表,在某个链上,RAW表处理完后,将跳过NAT表和 ip_conntrack处理,即不再做地址转换和数据包的链接跟踪处理了.RAW表可以应用在那些不需要做nat的情况下,以提高性能。如大量访问的we

2021-06-24 08:52:05 565

原创 多线程程序设计的常见坑

i++大致分为三个步骤:1、从内存读出i的值到寄存器2、操作寄存器加13、将寄存器值写到i内存多个线程去操作同一个全局变量的时候,可能某个线程在第二步的时候切换到另一个线程,这样就导致少加了。比如线程A 在i=1 的时候在第二步,这个时候寄存器加1值为2,在这个时候切换到线程B ,由于线程A还没有把2写到i里面,使用B读出来还是1,自增写到i里面,i为2,在切换到线程A,线程A将寄存器里面的2写到i,这样就少加了一次。...

2021-06-02 18:04:18 120

转载 Linux内存管理十五 CMA

什么是CMACMA是reserved的一块内存,用于分配连续的大块内存。当设备驱动不用时,内存管理系统将该区域用于分配和管理可移动类型页面;当设备驱动使用时,此时已经分配的页面需要进行迁移,又用于连续内存分配;其用法与DMA子系统结合在一起充当DMA的后端,具体可参考《没有IOMMU的DMA操作》。数据结构...

2021-05-28 10:50:42 189

转载 Linux内存管理十四 vmalloc

走进vmalloc根据前面的系列文章,我们知道了buddy system是基于页框分配器,kmalloc是基于slab分配器,而且这些分配的地址都是物理内存连续的。但是随着碎片化的积累,连续物理内存的分配就会变得困难,对于那些非DMA访问,不一定非要连续物理内存的话完全可以像malloc那样,将不连续的物理内存页框映射到连续的虚拟地址空间中,这就是vmap的来源)(提供把离散的page映射到连续的虚拟地址空间),vmalloc的分配就是基于这个机制来实现的...

2021-05-28 10:43:17 322

转载 Linux内存管理十三 Linux slab分配器

在Linux中,伙伴系统是以页为单位分配内存。但是现实中很多时候却以字节为单位,不然申请10Bytes内存还要给1页的话就太浪费了。slab分配器就是为小内存分配而生的。slab分配器分配内存以Byte为单位。但是slab分配器并没有脱离伙伴系统,而是基于伙伴系统分配的大内存进一步细分成小内存分配。走进slub...

2021-05-28 10:34:55 520

转载 Linux内存管理十二 Linux进程的内存管理之缺页异常

通过《Linux进程的内存管理之malloc和mmap》我们知道,这两个函数只是建立了进程的vma,但还没有建立虚拟地址和物理地址的映射关系。当进程访问这些还没建立映射关系的虚拟地址时,处理器会自动触发缺页异常。ARM64把异常分为同步异常和异步异常,通常异步异常指的是中断(可看《上帝视角看中断》),同步异常指的是异常。关于ARM异常处理的文章可参考《ARMv8异常处理简介》。...

2021-05-28 10:06:29 573

转载 Linux内存管理十一 malloc和mmap

通过《Linxu进程的内存管理》,我们知道了进程内存的最小单位是vma,根据不同的用处又划分了不同类型的vma,比如 heap: 动态分配和释放的内存 stack: 存放局部变量和实现函数调用 mmap:文件区间映射到虚拟地址空间的内存映射 text,data,bss 这篇我们就看下进程动态申请的内存,我们知道进程动态申请内存的函数是malloc,这篇讲下其涉及到的vma,即heap和mmap。malloc在linux标准libc库种,malloc函数的...

2021-05-28 09:24:56 699

转载 Linux内存管理十 如何让Linux进程在固定堆运行

我们知道程序在每次运行的时候地址都是不一样的,linux之所以有这样的设计也许是为了安全性考虑,不利于黑客的攻击。我们看一个简单的程序:#include <stdio.h>#include <stdlib.h>int main(int argc, char* argv[]){ int first = 0; int *p = malloc(1024); printf("p=%p\n", p); return 0;}显然程序每

2021-05-27 17:27:33 175

转载 Linux内存管理之九 内存管理

几个关键的数据结构一个进程的虚拟地址空间主要由两个数据结来描述,一个是 mm_struct,一个是 vm_area_structs。 mm_struct结构描述了一个进程的整个虚拟地址空间,vm_area_truct描述了虚拟地址空间的一个区间(简称虚拟区)。下图就是我们所说的由task_struct到mm_struct,进程的地址空间的分布。 每一个进程都会有自己独立的mm_struct,这样每一个进程都会有自己独立的地址空间,这样才能互不干扰。当进程之间的地址空间被共享的时候,我们可以

2021-05-27 17:23:17 115

转载 Linux内存管理之八 Linux页框分配器之内存碎片化整理

页框分配器在慢速分配中包括内存碎片化整理和内存回收,代码如下:static inline struct page *__alloc_pages_slowpath(gfp_t gfp_mask, unsigned int order, struct alloc_context *ac){ page = __alloc_pages_direct_compact(gfp_mask, order, alloc_flags, ac, INIT_COMPACT_PRI

2021-05-27 17:12:06 271

转载 Linux内存管理之七 Linux分区页框分配器之水位

我们讲页框分配器的时候讲到了快速分配和慢速分配,其中伙伴算法是在快速分配里做的,忘记的小伙伴我们再看下:static struct page *get_page_from_freelist(gfp_t gfp_mask, unsigned int order, int alloc_flags,const struct alloc_context *ac){ for_next_zone_zonelist_nodemask(zone, z, ac->zonelist, ac->high

2021-05-27 16:56:38 582

转载 Linux内存管理之六 Linux页框分配器之伙伴算法

上文我们讲到快速分配和慢速分配,接下来会详细讲解这两种分配情况,我们先来看下快速分配:static struct page *get_page_from_freelist(gfp_t gfp_mask, unsigned int order, int alloc_flags, const struct alloc_context *ac){ for_next_zone_zonelist_nodemask(zone, z, ac->zonelist, ac->high_z

2021-05-27 16:20:50 305

转载 Linux内存管理之五 Linux分区页框分配器

我们现在知道物理内存是以页框为最小单位存在的,那么内核中分配页框的方法是什么呢?分区页框分配器页框分配在内核里的机制我们叫做分区页框分配器(zoned page frame allocator),在linux系统中,分区页框分配器管理着所有物理内存,无论你是内核还是进程,都需要请求分区页框分配器,这时才会分配给你应该获得的物理内存页框。当你所拥有的页框不再使用时,你必须释放这些页框,让这些页框回到管理区页框分配器当中。有时候目标管理区不一定有足够的页框去满足分配,这时候系统会从另外两个管理区中获

2021-05-27 13:48:39 312

转载 Linux内存管理之四 数据结构

学习内存管理之前我们先了解几个重要的结构体,这些结构体理解了,基本对内存管理也就理解了一半。我说的。struct zone { unsigned long watermark[NR_WMARK]; struct pglist_data *zone_pgdat; struct per_cpu_pageset __percpu *pageset; struct free_area free_area[MAX_ORDER]; ......}enum zone_watermarks

2021-05-27 11:29:39 199

转载 Linux内存管理之三 Linux内存初始化

有了armv8架构访问内存的理解,我们来看下linux在内存这块的初始化就更容易理解了。创建启动页表:在汇编代码阶段的head.S文件中,负责创建映射关系的函数是create_page_tables。create_page_tables函数负责identity mapping和kernel image mapping。 identity map:是指把idmap_text区域的物理地址映射到相等的虚拟地址上,这种映射完成后,其虚拟地址等于物理地址。idmap_text区域都是一些打开MMU相关

2021-05-27 11:25:26 483

转载 Linux内存管理之二 MMU的过程

之前写过一篇《CPU是如何访问内存的?https://mp.weixin.qq.com/s?__biz=MzIxMjE1MzU4OA==&mid=2648919485&idx=1&sn=5b9281e427829634373a638bf0be1c89&chksm=8f5d8826b82a0130fb7e604c344de9d17436ccf51c1ab35a6c32c5b4dd80db7ea6ac7b534594&scene=21#wechat_redirect》的文

2021-05-27 10:28:29 248

转载 Linux内存管理之一 CPU是如何访问内存的?

内存管理可以说是一个比较难学的模块,之所以比较难学。一是内存管理涉及到硬件的实现原理和软件的复杂算法,二是网上关于内存管理的解释有太多错误的解释。希望可以做个内存管理的系列,从硬件实现到底层内存分配算法,再从内核分配算法到应用程序内存划分,一直到内存和硬盘如何交互等,彻底理解内存管理的整个脉络框架。本节主要讲解硬件原理和分页管理。CPU通过MMU访问内存我们先来看一张图:从图中可以清晰地看出,CPU、MMU、DDR 这三部分在硬件上是如何分布的。首先 CPU 在访问内存的时候都需要通过 MM

2021-05-27 10:06:11 646

原创 linux IIC 驱动

I2C驱动https://www.jianshu.com/p/40a178ff48f5Linux IIC 驱动分析(1) — 框架分析https://blog.csdn.net/zhoutaopower/article/details/100113002Linux驱动开发(十八):I2C驱动https://blog.csdn.net/a568713197/article/details/103280647...

2021-05-25 10:21:24 83

原创 网络编程的内存分配问题,内存一直是编程中最麻烦的问题

(1).第一道,我们在读数据的时候,一般都需要给应用程序最终缓冲区分配大小,这个大小有什么讲究吗?有讲究的。如果分配的太小,那就会频繁的从用户太切换到内核态,这样其实非常损耗CPU的时间。同时如果设置的太大的话,那就会长期阻塞在read或者recv函数上,造成可以先服务或者先完成的内容没完成。再次,也得比实际的数据稍微大一些以免缓冲区溢出,边界的问题要想办法做好的调整。。(2). 第二道,你能分析一下,我们文章中的例子所分配的缓冲是否可以换成动态分配吗?比如调用 malloc 函数来分配

2021-05-24 11:30:46 74

无锁队列测试.rar

/** * * * 用 fifo_init() 对一个 fifo 进行指定存储空间,指定存储项个数、每个项的尺寸, * 以及在有需要时,进行锁操作的初始化工作后,可使用 fifo_out(), * fifo_in() 进行数据出入操作。 * * 本库还提供了无锁版本的库,无锁版本的库在操作时不加锁,即使已经指定了锁函数。 * * 无锁版本的库以 _ll 为后缀(表示 lockless),可配合 fifo_lock(), fifo_unlock() * 进行二次开发。 * * 注意: **本库的存储项个数必需为 2 的 N 次方,用以实现某端只有一个操作者时, * 该端的操作无需加锁。** * * 即,如果只有一个读,则读端无需加锁,如果只有一个写,则写端无需加锁。 */

2020-08-18

java筑基(基础)面试专题系列(一):Tomcat+Mysql+设计模式.zip

java筑基(基础)面试专题系列(一):Tomcat+Mysql+设计模式.zip

2020-06-30

java筑基(基础)面试专题系列(二):并发+Netty+JVM.zip

java筑基(基础)面试专题系列(二):并发+Netty+JVM.zip

2020-06-30

Dubbo服务框架面试专题及答案整理文档.zip

Dubbo服务框架面试专题及答案整理文档.zip

2020-06-30

BAT面试常问80题.zip

BAT面试常问80题.zip

2020-06-30

2019蚂蚁金服面试题.zip

一面 1、自我介绍、自己做的项目和技术领域 开放题 2、项目中的监控:那个监控指标常见的有哪些? 答:CPU、内存、IO 等等。建议下载个nmon工具,里面有各个指标。 数据库:Mysql(缓存命中、索引、单条SQL性能、数据库线程数、数据池连接数) 中间件:1.消息2、负载均衡3、缓存(包括线程数、连接数、日志)。 网络: 吞吐量、吞吐率

2020-06-30

23种最新设计模式知识要点整理.zip

设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。

2020-06-30

1.分布式架构面试题汇总.zip

Eureka 服务注册中心 与客户端一起通过心跳机制完成服务注册与发现 通过搭建集群完成故障转移达到高可用性的目的,因为去中心化,满足了CAP定理中的AP原则(侧重可用性)

2020-06-30

Downloads.zip

freetype-2.10.0.tar.gz 和 mosquitto-1.6.9.tar.gz 别人的定的积分都太高了,从我这里下载吧

2020-06-18

GSM相关资料.zip

SIM800C是一款四频GSM/GPRS模块,为城堡孔封装。其性能稳定,外观小巧,性价比高,能满足客户的多种需求。SIM800C工作频率为GSM/GPRS850/900/1800/1900MHz,可以低功耗实现语音、SMS和数据信息的传输。SIM800C尺寸为17.6*15.7*2.3mm,能适用于各种紧凑型产品设计需求。

2020-06-17

SIM800系列_IP_应用文档_V1.02 HTTP FTP使用.pdf

SIM800C是一款四频GSM/GPRS模块,为城堡孔封装。其性能稳定,外观小巧,性价比高,能满足客户的多种需求。SIM800C工作频率为GSM/GPRS850/900/1800/1900MHz,可以低功耗实现语音、SMS和数据信息的传输。SIM800C尺寸为17.6*15.7*2.3mm,能适用于各种紧凑型产品设计需求。

2020-06-17

IAR开发环境搭建.zip

IAR 公司总部在北欧的瑞典,在美国、日本、英国、德国、比利时、巴西和中国设有分公司。它最著名的产品是C编译器-IAR Embedded Workbench, 支持众多知名半导体公司的微处理器。许多全球著名的公司都在使用IAR SYSTEMS提供的开发工具,用以开发他们的前沿产品,从消费电子、工业控制、汽车应用、医疗、航空航天到手机应用系统....

2020-06-10

物联网教程_55_数据可视化.zip

Mosquito以keepalive*1.5时间作为判断客户端连接是否异常断开的时间界限,这里keepalive的值对mosquito的性能会产生较大影响,此值过大,可能无法及时判断处异常的发生;此值过小,不仅浪费网络带宽,还可能造成误判,例如客户端与服务器之间tcp连接上的某个服务器异常重启,可能会被服务器误判为tcp连接断开了。此值需根据实际情况分析后确定。

2020-06-05

物联网教程_54_物联网组件.zip

Mosquito是一款实现了消息推送协议MQTT v3.1 的开源消息代理软件,由MQTT协议创始人之一的Andy Stanford-Clark开发,提供轻量级的,支持可发布/可订阅的的消息推送模式,使设备对设备之间的短消息通信变得简单。

2020-06-05

物联网教程_53_《MQTT_JX》例程.zip

MQTT服务器以称为“消息代理”(Broker),可以是一个应用程序或一台设备。它是位于消息发布者和订阅者之间,它可以: 接受来自客户的网络连接 接受客户发布的应用信息 处理来自客户端的订阅和退订请求 向订阅的客户转发应用程序消息

2020-06-05

物联网教程_52_云下设备上云_百度云.zip

打个比方,你打电话给朋友,一直要等到朋友接电话了才能够开始交流,是一个典型的同步请求/应答的场景;而给一个好友邮件列表发电子邮件就不一样,你发好电子邮件该干嘛干嘛,好友到有空了去查看邮件就是了,是一个典型的一部发布/订阅的场景。 熟悉编程的同学一定非常熟悉这种设计模式了,因为它带来了这些好处:发布者与订阅者不用了解彼此,只要认识同一个消息代理即可。 发布者和订阅者不需要交互,发布者无需等待订阅者确认而导致锁定。 发布者和订阅者不需要同时在线,可以自由选择时间来消费消息

2020-06-05

物联网教程_51_创建云端设备_百度云.zip

打个比方,你打电话给朋友,一直要等到朋友接电话了才能够开始交流,是一个典型的同步请求/应答的场景;而给一个好友邮件列表发电子邮件就不一样,你发好电子邮件该干嘛干嘛,好友到有空了去查看邮件就是了,是一个典型的一部发布/订阅的场景。 熟悉编程的同学一定非常熟悉这种设计模式了,因为它带来了这些好处:发布者与订阅者不用了解彼此,只要认识同一个消息代理即可。 发布者和订阅者不需要交互,发布者无需等待订阅者确认而导致锁定。 发布者和订阅者不需要同时在线,可以自由选择时间来消费消息

2020-06-05

物联网教程_50_天工物接入介绍_百度云.zip

MQTT服务器以称为“消息代理”(Broker),可以是一个应用程序或一台设备。它是位于消息发布者和订阅者之间,它可以: 接受来自客户的网络连接 接受客户发布的应用信息 处理来自客户端的订阅和退订请求 向订阅的客户转发应用程序消息

2020-06-05

物联网教程_49_mqtt.fx客户端.zip

一个使用MQTT协议的应用程序或者设备,它总是建立到服务器的网络连接。客户端可以: 发布其他客户端可能会订阅的信息 订阅其它客户端发布的消息 退订或删除应用程序的消息 断开与服务器连接

2020-06-05

物联网教程_48_MQTT协议讲解.zip

MQTT是一个基于TCP的发布订阅协议,它被设计用于轻量级的发布/订阅式消息传输,旨在为低带宽和不稳定的网络环境中的物联网设备提供可靠的网络服务。MQTT是专门针对物联网开发的轻量级传输协议。MQTT协议针对低带宽网络,低计算能力的设备,做了特殊的优化,使得其能适应各种物联网应用场景。

2020-06-05

flash_spi.7z

spi_flash 单片机驱动源码 nordic,STM32

2021-05-08

NordicSemiconductor::Device:Startup:8.27.0

Error #541: 'NordicSemiconductor::Device:Startup:8.27.0' component is missing (previously found in pack 'NordicSemiconductor.nRF_DeviceFamilyPack_NordicLicense')

2021-03-12

1-7 ffmpeg命令大全文档.png

1-7 ffmpeg命令大全文档.png

2020-07-13

ffmpeg学习资料.rar

FFmpeg 是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用 LGPL 或 GPL 许可证(依据你选择的组件)。它提供了录制、转换以及流化音视频的完整解决方 案。它包含了非常先进的音频/视频编解码库 libavcodec,为了保证高可移植性和编解 码质量, libavcodec 里很多 codec 都是从头开发的。

2020-07-08

一线互联网企业面试题(仅参考未整理答案).zip

一线互联网企业面试题(仅参考未整理答案).zip

2020-06-30

性能优化面试必备.zip

性能优化面试必备.zip

2020-06-30

微服务架构面试专题系列:Dubbo+Spring Boot+Spring Cloud.zip

微服务架构面试专题系列:Dubbo+Spring Boot+Spring Cloud.zip

2020-06-30

面试常问必备之Redis面试专题.zip

面试常问必备之Redis面试专题.zip

2020-06-30

面试常问必备之MySQL面试55题.zip

面试常问必备之MySQL面试55题.zip

2020-06-30

面试必问并发编程高级面试专题.zip

面试必问并发编程高级面试专题.zip

2020-06-30

面试必备之乐观锁与悲观锁.zip

面试必备之乐观锁与悲观锁.zip

2020-06-30

开源框架面试题系列:Spring+SpringMVC+MyBatis.zip

开源框架面试题系列:Spring+SpringMVC+MyBatis.zip

2020-06-30

分布式限流面试专题系列:Nginx+zookeeper.zip

分布式限流面试专题系列:Nginx+zookeeper.zip

2020-06-30

分布式通讯面试专题系列:ActiveMQ+RabbitMQ+Kafka.zip

分布式通讯面试专题系列:ActiveMQ+RabbitMQ+Kafka.zip

2020-06-30

分布式数据库面试专题系列:Memcached+Redis+MongoDB.zip

分布式数据库面试专题系列:Memcached+Redis+MongoDB.zip

2020-06-30

Spring面试专题及答案整理文档.zip

Spring面试专题及答案整理文档.zip

2020-06-30

MySQL性能优化的21个最佳实践.zip

MySQL性能优化的21个最佳实践.zip

2020-06-30

JVM与性能优化知识点整理.zip

JVM与性能优化知识点整理.zip

2020-06-30

redis面试实战.zip

redis面试实战.zip

2020-06-30

JVM与性能优化知识点整理.zip

JVM与性能优化知识点整理.zip

2020-06-30

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

TA关注的人

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