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

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

相关推荐
烦躁的大鼻嘎8 小时前
【Linux】深入Linux多线程架构与高性能编程
linux·运维·服务器·开发语言·c++·ubuntu
羚羊角uou8 小时前
【Linux】system V共享内存
linux·运维·服务器
破烂儿9 小时前
Ubuntu Server 安装图形界面和通过Window远程桌面连接服务器(Xrdp)
linux·服务器·ubuntu
老六ip加速器9 小时前
手机ip隔离方法
tcp/ip·智能手机·php
存储服务专家StorageExpert9 小时前
手搓一个 DELL EMC Unity存储系统健康检查清单
linux·运维·服务器·存储维护·emc存储
小虾米vivian10 小时前
达梦:将sql通过shell脚本的方式放在后台执行
服务器·数据库·sql
代码的余温10 小时前
Web服务器VS应用服务器:核心差异解析
运维·服务器·前端
疯狂的维修11 小时前
关于Gateway configration studio软件配置网关
网络协议·c#·自动化·gateway
NiKo_W11 小时前
Linux 开发工具(1)
linux·运维·服务器
wow_DG11 小时前
【WebSocket✨】入门之旅(五):WebSocket 的安全性
网络·websocket·网络协议