- 博客(17)
- 资源 (3)
- 收藏
- 关注
原创 VSCODE设置说明教程
VSCODE设置说明教程一篇很不错的帖子,包含函数调用的跟踪配置https://www.jianshu.com/p/8adbcbad1ad0gtag下载http://adoxa.altervista.org/global/需要的工具https://mp.csdn.net/console/upDetailed欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdo
2020-07-21 14:46:25
318
原创 TCP协议解析以及状态图详细分析
TCP协议解析以及状态图详细分析TCP数据报格式与UDP协议一样TCP协议也有源端口号和目的端口号,通讯的双方由IP地址和端口号标识。32位序号、32位确认序号、窗口大小。4位首部长度和IP协议头类似,表示TCP协议头的长度,以4字节为单位,因此TCP协议头最长可以是4x15=60字节,如果没有选项字段,TCP协议头最短20字节。URG、ACK、PSH、RST、SYN、FIN是六个控制位。16位检验和将TCP协议头和数据都计算在内。紧急指针和各种选项的解释从略。TCP协议TCP状态转换这个图N多
2020-05-11 12:00:20
655
原创 OSI七层模型详解
OSI七层模型详解典型协议传输层 常见协议有TCP/UDP协议。应用层 常见的协议有HTTP协议,FTP协议。网络层 常见协议有IP协议、ICMP协议、IGMP协议。网络接口层 常见协议有ARP协议、RARP协议。TCP传输控制协议(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。UDP用户数据报协议(User Datagram Protocol)是OSI参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。
2020-05-10 11:07:30
4149
1
原创 linux线程与进程同步锁机制
linux线程与进程同步锁机制同步概念所谓同步,即同时起步,协调一致。而,编程中、通信中所说的同步与生活中大家印象中的同步概念略有差异。“同”字应是指协同、协助、互相配合。主旨在协同步调,按预定的先后次序运行。线程同步同步即协同步调,按预定的先后次序运行。线程同步,指一个线程发出某一功能调用时,在没有得到结果之前,该调用不返回。同时其它线程为保证数据一致性,不能调用该功能。“同步”...
2020-05-08 00:26:35
1092
原创 linux进程与线程的区别
进程与线程的区别线程LWP:light weight process 轻量级的进程,本质仍是进程(在Linux环境下)进程:独立地址空间,拥有PCB线程:也有PCB,但没有独立的地址空间(共享)区别:在于是否共享地址空间。 独居(进程);合租(线程)。Linux下: 线程:最小的执行单位进程:最小分配资源单位,可看成是只有一个线程的进程。Linux内核线程实现原理类Unix系...
2020-05-07 23:47:34
283
原创 linux中线程共享资源
linux中线程共享资源线程概念线程LWP:light weight process 轻量级的进程,本质仍是进程(在Linux环境下)进程:独立地址空间,拥有PCB线程:也有PCB,但没有独立的地址空间(共享)区别:在于是否共享地址空间。 独居(进程);合租(线程)。Linux下: 线程:最小的执行单位进程:最小分配资源单位,可看成是只有一个线程的进程。Linux内核线程实现...
2020-05-07 23:17:06
1673
原创 linux下常用四大进程间通信机制
linux下常用四大进程间通信机制Linux环境下,进程地址空间相互独立,每个进程各自有不同的用户地址空间。任何一个进程的全局变量在另一个进程中都看不到,所以进程和进程之间不能相互访问,要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲区,进程2再从内核缓冲区把数据读走,内核提供的这种机制称为进程间通信(IPC,InterProcess Communication...
2020-05-07 19:07:48
1283
原创 父子进程共享内容
父子进程共享内容进程简介程序,是指编译好的二进制文件,在磁盘上,不占用系统资源(cpu、内存、打开的文件、设备、锁…)进程,是一个抽象的概念,与操作系统原理联系紧密。进程是活跃的程序,占用系统资源。在内存中执行。(程序运行起来,产生一个进程)CPU和MMU中央处理器(CPU)虚拟地址空间0-4G,实际上是不存在的,是可用的地址空间是4G,而真正实际占用的内存只有kb大小。PCB映...
2020-05-07 18:05:38
13943
原创 linux socket通信出错封装处理
linux socket通信出错封装处理wrap.c#include <stdlib.h>#include <errno.h>#include <sys/socket.h>void perr_exit(const char *s){ perror(s); exit(1);}int Accept(int fd, struct sockaddr ...
2020-05-04 17:09:58
218
原创 网络通信C/S模型-TCP
网络通信C/S模型-TCP基本模型图如下:服务器调用socket()、bind()、listen()完成初始化后,调用accept()阻塞等待,处于监听端口的状态,客户端调用socket()初始化后,调用connect()发出SYN段并阻塞等待服务器应答,服务器应答一个SYN-ACK段,客户端收到后从connect()返回,同时应答一个ACK段,服务器收到后从accept()返回。数据传输...
2020-05-04 17:05:31
451
原创 socket网络编程---基础理论
socket网络编程—基础理论套接字概念Socket本身有“插座”的意思,在Linux环境下,用于表示进程间网络通信的特殊文件类型。本质为内核借助缓冲区形成的伪文件。既然是文件,那么理所当然的,我们可以使用文件描述符引用套接字。与管道类似的,Linux系统将其封装成文件的目的是为了统一接口,使得读写套接字和读写文件的操作一致。区别是管道主要应用于本地进程间通信,而套接字多应用于网络进程间数据...
2020-05-04 16:55:54
198
原创 本地套接字---domain
本地套接字—domainsocket API原本是为网络通讯设计的,但后来在socket的框架上发展出一种IPC机制,就是UNIX Domain Socket。虽然网络socket也可用于同一台主机的进程间通讯(通过loopback地址127.0.0.1),但是UNIX Domain Socket用于IPC更有效率:不需要经过网络协议栈,不需要打包拆包、计算校验和、维护序号和应答等,只是将应用层...
2020-05-04 15:53:30
300
原创 UDP高并发---服务器/客户端
UDP服务器传输层主要应用的协议模型有两种,一种是TCP协议,另外一种则是UDP协议。TCP协议在网络通信中占主导地位,绝大多数的网络通信借助TCP协议完成数据传输。但UDP也是网络通信中不可或缺的重要通信手段。相较于TCP而言,UDP通信的形式更像是发短信。不需要在数据传输之前建立、维护连接。只专心获取数据就好。省去了三次握手的过程,通信速度可以大大提高,但与之伴随的通信的稳定性和正确率便得...
2020-05-04 10:42:13
3469
原创 高并发服务器---多进程/多线程
高并发服务器高并发服务器框架网上看到这张图不错,就拿过来了。多进程并发服务器父进程监听,子进程领任务做具体逻辑的实现。父进程关闭cfd,close(cfd),子进程关闭lfd,close(lfd),因为父子进程共享文件描述符表。子进程回收机制,通过信号捕捉函数while(1){waitpid()...}捕捉的信号SIGCHLD()进程死亡只能由父进程回收使用多进程并发服务器时...
2020-05-04 10:30:18
740
原创 线程池thread_pool源码分析
线程池thread_pool源码分析#include <stdlib.h>#include <pthread.h>#include <unistd.h>#include <assert.h>#include <stdio.h>#include <string.h>#include <signal.h>...
2020-04-29 21:37:15
283
原创 libevent库epoll反应堆模型源码分析
libevent库epoll反应堆模型源码分析/* *epoll基于非阻塞I/O事件驱动 */#include <stdio.h>#include <sys/socket.h>#include <sys/epoll.h>#include <arpa/inet.h>#include <fcntl.h>#include &l...
2020-04-29 21:33:59
233
原创 多路转接I/O select/poll/epoll高并发模型详解
select/poll/epoll详解select1.select能监听的文件描述符个数受限于FD_SETSIZE,一般为1024,单纯改变进程打开的文件描述符个数并不能改变select监听文件个数2.解决1024以下客户端时使用select是很合适的,但如果链接客户端过多,select采用的是轮询模型,会大大降低服务器响应效率。#include <sys/select.h>...
2020-04-29 00:03:04
352
vscode c++ 配置说明教程 LLVM.rar
2020-07-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人