![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
服务器编程
文章平均质量分 88
小蜜蜂爱编程
积跬步以致千里,积小流以成江海
展开
-
IO模型与reactor模式
文章目录前言一、IO模型的种类及如何理解二、reactor模式与IO模拟的proactor模式 前言 主要讲解五种IO模型 一、IO模型的种类及如何理解 unix系统的网络IO模型根本上分为五种: 1、阻塞IO; 2、非阻塞式IO; 3、I/O复用 4、信号驱动式I/O 5、异步I/O 可能很多人都在unix网络编程中看过这五种IO的介绍,但却对这几种IO的区别点在哪体会不深。所以这里也是主要侧重于比较各种IO。 首先来说阻塞IO: 其实就是用户进程使用阻塞模式调用recv接口,如果此时..原创 2021-03-09 15:30:23 · 529 阅读 · 0 评论 -
TCP状态转换图与TIME_WAIT状态
文章目录前言一、TCP状态转换图详解 前言 本文主要讲解TCP状态转换图,TCP的三路握手,四次挥手以及半连接,半关闭状态,time_wait状态 提示:以下是本篇文章正文内容,下面案例可供参考 一、TCP状态转换图详解 图片引自《Linux高性能服务器编程》。 对于一个TCP状态转移图,我们可以这样来看: (1)首先假设一个TCP初始为CLOSED关闭状态; (2)程序打开tcp,服务器进行到LISTEN监听状态,客户端处于SYN_SENT状态; (3)这时客户端如果发送了一个SYN同步报文,..原创 2021-03-09 12:07:48 · 211 阅读 · 1 评论 -
单例设计模式深释--单例设计模式的N种写法
最全的单例模式实现原创 2021-03-01 21:59:55 · 147 阅读 · 0 评论 -
手撕通用线程池组件
线程池原创 2020-12-27 18:15:52 · 115 阅读 · 0 评论 -
并发计数原理及其无锁实现
1、多线程 2、多线程进入临界区的深入剖析 3、互斥锁、自旋锁的实现及应用场景 4、原子操作的实现 5、CAS原子操作原理及实现原创 2020-12-24 11:43:23 · 578 阅读 · 1 评论 -
高性能服务器编程之统一事件源
文章目录高性能服务器编程之统一事件源一个简单的统一事件源实现示例2.读入数据总结 高性能服务器编程之统一事件源 在服务器编程框架中,都伴随着配置初始化,日志打印、信号处理、连接处理,数据处理等步骤。信号常常可以用来进行父子进程,线程的管控,但信号与连接到来/数据到来走的是不同的执行路线,并且信号处理函数要尽可能快地执行完,因为在信号函数处理期间,该信号不会被再次触发。为了能统一管理这些事件,一种典型的统一事件源的方法是,把信号的主要处理逻辑放到主循环中来做,当信号处理函数被触发时,它只是简单地执行目标信.原创 2020-12-09 12:34:05 · 271 阅读 · 1 评论 -
常见的IO复用场景
在网络程序中比较常见的要使用到IO复用的场景如下: 客户端程序要同时处理多个socket,如非阻塞connect技术 客户端程序要同时处理用户输入和网络连接。比如聊天室程序。 TCP服务器要同时处理监听socket和连接socket。 服务器要同时处理TCP请求和UDP请求。如回射服务器 服务器要同时监听多个端口或处理多种服务,如xinetd服务器 ...原创 2020-12-06 15:03:30 · 338 阅读 · 0 评论 -
网络编程常用的socket 选项
网络编程常用的socket 选项 设置socket选项的方法 通常我们使用fcntl系统调用设置文件描述符属性,它也是一个POSIX接口,对于设置/读取socket文件描述符属性的方法,使用以下两个接口: #include <sys/socket.h> int getsockopt(int sockfd, int level, int option_name, void * option_value, socklen_t *restrict option_len); int setsockopt原创 2020-12-02 11:16:49 · 129 阅读 · 0 评论