首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
高并发网络编程
曾格爱自研
创建于2023-08-03
订阅专栏
网络编程总会遇到高并发问题
暂无订阅
共19篇文章
创建于2023-08-03
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
利用libcurl库多线程文件下载
利用libcurl库多线程文件下载 可以平时在linux上当作自己的一个小小的下载器 linux环境准备 在项目目录下新建: build 目录: 用来编译 src目录:用来编写源码(本例比较简单,就没
【操作系统内核-进程-2】线程
【操作系统内核-进程-1】线程 为什么需要线程 比如我要做一个视频播放器,就需要实现三个功能: ① 从磁盘读取视频数据 ② 对读取到的视频数据进行解码 ③ 对解码的数据进行播放 如果串行执行(通过一个
【操作系统内核-进程-1】进程
【操作系统内核-进程-1】进程 进程的组成 进程的运行,需要考虑 磁盘 => 内存 => CPU => 内核 => 进程切换 这个过程 首先,程序运行要将可执行文件加载到内存,所以进程要读取可执行文件
锁与原子操作
锁与原子操作 锁 以自增操作为例子: 如果有两个线程对i=20进行自增:idx++ 正常是这样: 从内存加载到寄存器 =》 寄存器自增 =》 从寄存器加载到内存 但可能是: 在线程1切换2时,没问题,
epoll设计实现
epoll设计实现 没有epoll之前,Linux只能做嵌入式 数据结构设计 fd总集:以查找为主,为啥以查找为主(往下看) 哈希表:初始化内存占用太大,比如只有100个fd,也得初始化一个1k长的哈
网络协议栈简单设计(tcp)
网络协议栈简单设计(tcp) 接着这篇文章写的 TCP相对于Udp,分为两个部分:连接(三次握手、四次挥手)、交互(数据传输) 三次握手 tcp包结构体定义 依照tcp包头字段定义就行: 注意,tcp
网络协议栈简单设计(udp)
网络协议栈简单设计 操作系统内核中实现了网络协议栈,但今天利用netmap(也可利用dpdk)绕过内核协议栈进行网络数据的收发 netmap 内核协议栈加载数据: 数据从网卡到内核再到内存,需要经过两
用户区网络缓冲区
用户区网络缓冲区 为什么要有用户层缓冲区 TCP内核协议栈,每个连接都有一个接收缓冲区和一个发送缓冲区,为啥用户层也要有: 为啥要有接收缓冲区 生产者速度大于消费者速度:客户端发送地太快,服务器处理不
posix API与网络协议栈
posix API与网络协议栈 scoket socket包含两部分:fd、tcb(tcp control block) 其中,fd属于文件系统,可在用户态进行操控;而tcb属于内核协议栈 三次握手
网络IO与Rector模型
IO检测与处理 IO函数 连接的建立 需要服务端和客户端分别建立socket套接字,客户端发送connect请求,服务端监听该请求,并accept该请求: 连接的断开 TCP是全双工的,一个socke
websocket的实现
websocket的实现 本文的websocket实现基于单线程Reactor网络模型的代码实现 初步了解websocket(必读):参考连接 websocekt的实现基于http,数据传输与处理过程
单线程Reactor模型
单线程Reactor模型 Reactor模型只是对select\poll\epoll等网络模型的封装,本文讲解基于epoll实现Reactor模型 Reactor模型 单线程Reactor模型较为简单
从socket开始讲解网络模式(从select到epoll)
从socket开始讲解网络模式 windows采用IOCP网络模型,而linux采用epoll网络模型(Linux得以实现高并发,并被作为服务器首选的重要原因),接下来讲下epoll模型对网络编程高并
Linux C++通讯架构【六】:多线程服务业务处理逻辑
线程池 业务逻辑线程: 和系统线程概念不一样,用户线程和系统线程有1:n、m:n、1:1,Linux和windows一般都用的1:1模型,执行效率块,但有最大线程限制。 iocp(windows)启动
Linux C++通讯架构【五】:网络通讯实战
收发包 socket:可理解为四元组关联的一个数字,具有唯一性,socket在unix上是一个文件描述符 发包: 包头结构: 报文总长度Len:包头+包体 消息类型:这个包需要用服务器的哪个函数处理。
Linux C++通讯架构【四】:框架基础
框架搭建 文件目录 include:存放各种头文件 app目录:放主应用程序(main函数所在文件,以及一些核心的文件) link.o目录:各种.c文件编译生成.o文件,然后链接这些.o文件成一个可执
Linux C++通讯架构【三】:进程与fork
fork简单认识 进程:程序执行的一个实例 fork速度很快,新的进程复制页表,不复制内存空间(读时共享,写时复制) fork子进程函数的返回处:开始执行和父进程相同的代码,和父进程一样。返回两次,子
Linux C++通讯架构【二】:进程和信号
终端(pts)与进程的关系 pts就是一个bash(命令解释器),一个shell,一个可执行程序,在/bin/bash目录下,终端如果关闭,终端上的进程也就关闭了; 比如执行一个可执行程序,不断往A终
Linux C++通讯架构【一】:Nginx介绍
Nginx介绍 介绍 web服务器:反向代理,负载均衡,邮件代理 需要的资源比较少,轻量级服务器,高并发服务器,号称并发处理百万级别的tcp连接,热部署(边运行边升级),各模块耦合度很低。 在不同操作