TCP并发服务器

在之前我们写过单循环服务器:同一时刻只能处理一个客户端任务

并发服务器则是在同一时刻,能够处理多个客户端的任务

一、实现方法

1、多进程

安全性好。

2、多线程

并发量更高、高效。

3、IO多路复用

二、IO模型

1、阻塞IO

阻塞函数:fgets、scanf、read、recv、getchar等。

特点:

(1)实现多个IO同步的效果;(有先后顺序)

(2)CPU占有率低。

2、非阻塞IO

特点:

(1)使用轮询的方式实现,可监测多路复用。

(2)CPU占有率高。

实现:

(1)获得原文件描述符的属性;

(2)增加非阻塞属性;fcntl

int fcntl(int fd , int cmd , ...)

参数:cmd为F_GETFL(获得) 、F_SETFL(设置) 、F_SETOWN(关联)等。

(3)设置新属性。

例如;非阻塞的读管道。

3、信号驱动IO

特点:

(1)实现异步IO操作,节省CPU开销。

(2)只能监测少量IO。

实现:

(1)增加异步属性;

(2)关联当前进程;

(3)注册信号处理函数。

例如:信号驱动的读管道。

相关推荐
代码的奴隶(艾伦·耶格尔)21 分钟前
Nginx
java·服务器·nginx
头发还没掉光光23 分钟前
HTTP协议从基础到实战全解析
linux·服务器·网络·c++·网络协议·http
Getgit1 小时前
Linux 下查看 DNS 配置信息的常用命令详解
linux·运维·服务器·面试·maven
数通工程师1 小时前
企业级硬件防火墙基础配置实战:从初始化到规则上线全流程
运维·网络·网络协议·tcp/ip·华为
捷智算云服务2 小时前
告别运维割裂!捷智算GPU维修中心重新定义“全栈式”维修新标准
运维·服务器·性能优化
那就回到过去2 小时前
PIM-DM断言机制和剪枝否决机制
网络·tcp/ip·智能路由器·ensp
budingxiaomoli3 小时前
HTTP协议
网络·网络协议·http
橘颂TA3 小时前
【Linux 网络】TCP 拥塞控制与异常处理:从原理到实践的深度剖析
linux·运维·网络·tcp/ip·算法·职场和发展·结构与算法
啊湘3 小时前
服务器维护------日志大小控制
运维·服务器·日志大小
qq_366086224 小时前
SQL Server 之 Full-Text Search 全文搜索
运维·服务器·数据库