自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 输入一个网址的工作流程

1、在浏览器输入一个网址。2、浏览器会解析该地址,找到它的IP地址。1)浏览器缓存:浏览器会缓存DNS记录一段时间。2)系统缓存:若浏览器缓存没有,则调用系统缓存查找。3)路由器缓存:若系统缓存没有。发向路由器,它一般有自己的DNS缓存。4)ISP缓存:一种宽带接入提供商给网页批量访问加速的技术。ISP会将当前访 问量较大的网页内容放到ISP服务器的缓存中,当有新的用户请求相同内容时, 可以直接从缓存中发送相关信息,不必每次都去访问真正的网站。5)递归搜索:如果主机所询问的本地域名服务器不知.

2020-11-20 13:38:53 3249

原创 ARP协议工作流程

ARP协议:由IP地址获取物理地址的TCP/IP协议。当主机A与主机B要通信时,以下是工作流程:1、先根据路由表,确定B的IP地址,然后查询本地ARP缓存表看是否能匹配到B的MAC地址。2、如何没匹配到B的MAC地址,则发送含B的IP地址的ARP请求报文广播到本地网络,网络中的主机检查IP是否是自己的IP,如果不是,则丢弃。3、B主机确定A请求报文中的IP与自己匹配,则将A的IP和MAC地址添加到本地缓存表中。4、B主机向A主机回复一个含自身MAC地址的报文。5、A主机收到报文后将B的IP和MA

2020-11-20 11:48:08 5663

原创 进程与线程之间的区别

进程与线程的区别:根本区别:进程是操作系统资源分配的基本单位;线程是任务调度和执行的基本单位。开销方面:进程的开销大,因为每个进程享有独立的代码和数据空间,程序之间切换会有较大的开销;线程的开销小,线程可以看做轻量级的线程,同一类线程共享代码和数据空间,每个线程有自己独立的运行栈和程序计数器,线程之间切换的开销小。内存分配:系统在运行的时候会为每个进程分配不同的内存空间;对线程而言,除...

2019-09-06 14:15:36 191

转载 网络学习-传输层TCP(流量控制和拥塞控制)

https://blog.csdn.net/zgege/article/details/80445324

2019-08-21 22:49:05 274

转载 大小端判断和网络字节序

https://blog.csdn.net/qq_37934101/article/details/81386368

2019-08-21 22:37:05 159

转载 valgrind安装及使用方法详解

https://blog.csdn.net/primeprime/article/details/79539504

2019-08-21 22:30:49 202

转载 红黑树与AVL树

红黑树与AVL树都是平衡树,但是AVL是完全平衡的(平衡就是值树中任意节点的左子树和右子树高度差不超过1);红黑树效率更高,因为AVL为了保证其完全平衡,插入和删除的时候在最坏的情况下要旋转logN次,而红黑树插入和删除的旋转次数要比AVL少。AVL树 [1] ,它或者是一颗空二叉树,或者是具有下列性质的二叉树:(1) 其根的左右子树高度之差的绝对值不能超过1;(2) 其根的左右子树都是...

2019-08-08 19:01:41 119

转载 关于linux下硬链接与软连接的介绍

滴滴滴

2019-08-01 15:02:59 130

原创 进程间的通信方式

如果多个进程之间需要协同处理某个任务时,这时就需要进程间的同步和数据交流。常用的进程间通信(IPC,InterProcess Communication)的方法有:1. 信号 ( Sinal ) : 信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生;像在我之间写的mqtt博客中就使用到了信号函数。2. 管道(Pipe):管道是一种半双工的通信方式,数据只能单向流动,而且只能在...

2019-08-01 13:56:02 147

原创 多路复用之epoll()

滴滴滴

2019-07-29 17:19:47 335

原创 多路复用之poll()

poll()的机制与select类似,它与select在本质上没有多大差别,管理多个描述符也是进行轮询,根据描述符的状态进行处理,但是没有最大文件描述符数量的限制(但是数量过大后性能也是会下降)。poll和select同样存在一个缺点就是,包含大量文件描述符的数组被整体复制于用户态和内核地址空间之间,而不论这些文件描述符是否就绪,它的开销随着文件描述符的描述数量增加而线性增加。poll的原型如下...

2019-07-29 17:17:42 278

原创 linux编程下的五种网络I/O模型

在linux下编程,我们常见有四种调试模式,分别是同步(Sync),异步(Async),阻塞(block)和非阻塞(Unblock).同步和异步的概念描述的是用户的线程与内核IO操作的方式:同步是指用户线程发起IO请求后需要等待内核IO操作完成后才能继续执行;而异步是指用户线程发起IO请求后任然继续不断的执行,当内核IO操作完成后会通知用户线程,或者调用用户线程注册的回调函数。linux下编程...

2019-07-29 15:21:02 151

原创 多线程编程(thread.c)

在操作系统原理的术语中,线程是进程的一条执行路径。线程在Unix系统下,通常被称为轻量级的进程,线程虽然不是进程,但却可以看作是Unix进程的表亲,所有的线程都是在同一进程空间运行,这也意味着多条线程将共享该进程中的全部系统资源,如虚拟地址空间,文件描述符和信号处理等等。但同一进程中的多个线程有各自的调用栈(call stack),自己的寄存器环境(register context),自己的线程本...

2019-07-27 12:42:59 1319

原创 多进程编程之相关函数详解(wait,waitpid,system,popen)

噢噢噢

2019-07-26 21:25:17 504

原创 多进程编程之fork()丶vfork()系统调用

滴滴滴

2019-07-24 22:48:07 272

原创 在linux下使用C语言实现MQTT通信(四.上传至阿里云服务器)

噢噢噢

2019-07-23 22:48:54 4477

原创 linux下使用C语言实现MQTT通信(三丶总结经验)

2019-07-23 14:32:29 5418 3

原创 在linux下使用c语言实现MQTT通信(二.编程实现)

我是用的secureCRT登录的树莓派,要实现MQTT通信,就需要用到许多关于MQTT的函数,这里我用的是Paho.c库,所以首先下载库:在git下下载paho C库git clone https://github.com/eclipse/paho.mqtt.c.gitcd paho.mqtt.cmake//编译sudo make install//安装执行make之后我们在build...

2019-07-22 18:19:34 9094 4

原创 多路复用之select()

该函数允许进程指示内核等待多个时间中的任何一个发送,并只有在有一个或者多个时间发生或经历一段指定的时间后才唤醒。函数原型如下:`#include<sys/select.h>#include<sys/time.h>int select(int max_fd,fd_set *readset,fd_set *writeset,fd_set *acceptset, struct...

2019-07-22 17:54:09 181

原创 在linux下使用c语言实现MQTT通信(一.MQTT原理介绍及流程图)

8 #include<fcntl.h>  9 #include<stdlib.h> 10 #include" 11     get_temperature.h" 12 int  get_temperature(float *temper) 13 { &n...

2019-07-22 16:46:49 20835

空空如也

空空如也

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

TA关注的人

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