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

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

相关推荐
xflySnail24 分钟前
nas服务域名高速访问-DNS+ESA
运维·服务器·esa·无端口访问
上海云盾-高防顾问6 小时前
中小企业低成本渗透测试实操指南
网络协议·web安全·网络安全
苏宸啊8 小时前
Linux指令篇(一)
linux·运维·服务器
阿波罗尼亚8 小时前
Tcp SSE Utils
android·java·tcp/ip
ZStack开发者社区9 小时前
ZStack Cloud 5.5.0正式发布
运维·服务器·网络
源代码•宸10 小时前
Golang语法进阶(并发概述、Goroutine、Channel)
服务器·开发语言·后端·算法·golang·channel·goroutine
晴天¥11 小时前
VMware+Oracle linux LVM/非LVM磁盘扩容
linux·运维·服务器
醇氧11 小时前
Ping 127.0.0.1 具有 32 字节的数据:一般故障。【二】
运维·服务器·开发语言
墨风如雪12 小时前
VPS交易避坑指南:原油、改邮、PUSH与交易所模式深度解析 (含搬瓦工/DMIT/NetCup实战)
服务器
LeenixP12 小时前
RK3576-Debian12删除userdata分区
linux·运维·服务器·数据库·debian·开发板