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)注册信号处理函数。

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

相关推荐
AirDroid_cn12 分钟前
Win11 远程桌面:连接公司电脑时,提示 “证书错误” 如何解决?
windows·网络协议·https·ssl·电脑技巧
算力魔方AIPC16 分钟前
PP-OCRv5 MCP服务器在海光主板的部署与实战
运维·服务器
dyxal21 分钟前
内网windows系统机器通过vscode ssh连接内网服务器,无网络导致的一系列无法正常连接问题
服务器·vscode·ssh
云动雨颤34 分钟前
WordPress提速指南:Memcached+Super Static Cache+CDN缓存网站内容
服务器·memcached·cdn
blackorbird1 小时前
使用 Overpass Turbo 查找监控摄像头
运维·服务器·数据库·windows
思想是一切事物的源头2 小时前
渗透测试所需域名和IP信息收集方法
网络·网络协议·tcp/ip·安全性测试
xx.ii2 小时前
Zabbix模板,监控项,图形的使用方法
服务器·网络·zabbix
Cx330❀2 小时前
《Linux基础入门指令(二)》:从零开始理解Linux系统
linux·运维·服务器·网络·经验分享
是良辰3 小时前
Linux 服务器NFS文件共享
运维·服务器
沐浴露z3 小时前
【深入理解计算机网络11】应用层详解:DNS,WWW,HTTP
服务器·网络协议·计算机网络·http