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

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

相关推荐
郭涤生3 分钟前
第十章_信号_《UNIX环境高级编程(第三版)》_笔记
服务器·笔记·unix
QT 小鲜肉14 分钟前
【Linux命令大全】001.文件管理之which命令(实操篇)
linux·运维·服务器·前端·chrome·笔记
额呃呃1 小时前
select详细分析
服务器
网创联盟,知识导航1 小时前
沐雨云香港大宽带云服务器 · 配置全览
服务器·阿里云·腾讯云
fantasy5_52 小时前
Linux 动态进度条实战:从零掌握开发工具与核心原理
linux·运维·服务器
不瘦80斤不改名2 小时前
Python 日志(logging)全解析
服务器·python·php
莫逸风2 小时前
【局域网服务方案】:无需找运营商,低成本拥有高性能服务器
运维·服务器
小李独爱秋3 小时前
计算机网络经典问题透视:常规密钥体制与公钥体制最主要的区别是什么?—— 一文带你从“钥匙”看懂现代密码学核心
服务器·网络·tcp/ip·计算机网络·密码学
Amy_au4 小时前
Linux week 01
linux·运维·服务器
淮上安子骞4 小时前
sage10.8源码部署
服务器·密码学·ctf·本地部署·sage