C or 计算机网络
文章平均质量分 90
~
易方达蓝筹
一蓑烟雨任平生
展开
-
C++提高编程
C++提高编程本阶段主要针对C++泛型编程和STL技术做详细讲解,探讨C++更深层的使用1 模板1.1 模板的概念模板就是建立通用的模具,大大提高复用性例如生活中的模板一寸照片模板:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WXKCCg00-1646030437967)(assets/1547105026929.png)]PPT模板:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S37n8LUn-16460304379原创 2022-02-28 14:41:00 · 221 阅读 · 0 评论 -
C++核心编程手册
C++核心编程本阶段主要针对C++面向对象编程技术做详细讲解,探讨C++中的核心和精髓。1 内存分区模型C++程序在执行时,将内存大方向划分为4个区域代码区:存放函数体的二进制代码,由操作系统进行管理的全局区:存放全局变量和静态变量以及常量栈区:由编译器自动分配释放, 存放函数的参数值,局部变量等堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收内存四区意义:不同区域存放的数据,赋予不同的生命周期, 给我们更大的灵活编程1.1 程序运行前 在程序编译后,生成了ex原创 2022-02-28 08:21:14 · 1219 阅读 · 0 评论 -
DNS介绍
在前文了解了IP是用于识别某个网络区域的主机,那么平时我们在访问网站的时候一般都不会输入IP进行访问。例如,你访问百度,一般都输入:www.baidu.com ,那么你总不会输入类似 124.23.1.12 这样的IP进行访问吧 设身处地想一下,若你想让用户记住你的网站,你总不能让他记一大串数字吧,更何况,以后用到IPv6,需要记忆的数字更多,所以最好的做法就是给这些IP一个名称,我们称之为域名,而当我们访问这些域名的时候,具体访问哪个IP这件事就要交给DNS去做了,本文也将详细介绍一下DNS的具体作用.转载 2021-01-05 11:34:18 · 226 阅读 · 0 评论 -
数组/链表排序
1、堆排序#include <stdio.h>void swap(int *p,int *q){ int temp; temp = *p; *p = *q; *q = temp;}void sort(int a[],int index ,int end){ int dad = index; int son = dad*2+1; while(son<=end){ if(son+1<=end an原创 2020-12-18 16:36:13 · 209 阅读 · 2 评论 -
多线程打印出ABCABCABC...
1、编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推。/* mutex.c */#include <stdlib.h>#include <stdio.h>#include <pthread.h>#include <errno.h>/* 全局变量 */int gnum = 0;/* 互斥量 */pthread_mutex_t原创 2020-12-15 09:06:39 · 401 阅读 · 1 评论 -
redis6.0 多线程简介
1、简单介绍redis 的瓶颈并不在 CPU,而在内存和网络。Redis 6 中的多线程 主要在处理 网络 I/O 方面,对网络事件进行监听,分发给 work thread 进行处理,处理完以后将主动权交还给 主线程,进行 执行操作,当然后续还会有,执行后依然交由 work thread 进行响应数据的 socket write 操作。2、单线程网络处理模型当监听到某一时刻,端口接收到数据时,根据事件模型,进行不同的处理。对于所有的客户端的请求,根据就绪队列的顺序,进行串行化处理,处理完fd1,再处原创 2020-11-21 17:52:51 · 532 阅读 · 0 评论 -
libevent使用教程
本文转载于此1、简介基本的socket变成是阻塞/同步的,每个操作除非已经完成,出错,或者超时才会返回,这样对于每一个请求,要使用一个线程或者单独的进程去处理,系统资源没有办法支撑大量的请求。posix定义了可以使用异步的select系统调用,但是因为它采用了轮询的方式来判断某个fd是否变成active,效率不高。于是各系统就分别提出了基于异步的系统调用,例如Linux的epoll,由于在内核层面做了支持,所以可以用O(1)的效率查找到active的fd。基本上,libevent就是对这些高效IO的封装原创 2020-11-19 20:12:44 · 5098 阅读 · 1 评论 -
redis中epoll模型-IO多路复用详情解析
阅读完redis中的网络模型源码,该文章会基于源码是如何去实现的角度,去介绍epoll模型、事件处理。以及基于此,自己实现的多人聊天终端系统,并附带源码。1、epoll模型介绍epoll 是Linux内核为处理大量并发网络连接而提出的解决方案,能显著提升系统CPU利用率。epoll使用非常简单,总共只有3个API :epoll_create函数创建一个epoll专用的文件描述符,用于后续epoll相关API调用;epoll_ctl函数向epoll注册、修改或删除需要监控的事件;epoll_wai原创 2020-11-15 21:49:31 · 467 阅读 · 0 评论 -
tcp/ip协议与socket介绍
1、tcp/ip四层协议模型2、curl 命令当用户执行curl命令时,执行了建立连接->发送数据->关闭连接这几个过程。2.1 应用层用户运行执行curl命令2.2 传输控制层,建立连接主要有TCP和UDP协议TCP协议:面向连接的可靠传输协议。利用TCP进行通信时,首先要通过三步握手,以建立通信双方的连接。TCP提供了数据的确认和数据重传的机制,保证发送的数据一定能到达通信的对方。UDP协议:是无连接的,不可靠的传输协议。采用UDP进行通信时不用建立连接,可以直接向一个I原创 2020-07-29 22:21:13 · 2755 阅读 · 0 评论