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

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

相关推荐
陌路201 天前
TCP/IP模型传输层协议
网络·网络协议·tcp/ip
鸠摩智首席音效师1 天前
如何在 Linux 下以 www-data 用户运行 Crontab ?
linux·运维·服务器
不染尘.1 天前
应用层之WWW
服务器·javascript·css·网络·网络协议·计算机网络·html
全栈工程师修炼指南1 天前
Nginx | HTTP 反向代理:对上游服务端响应缓存流程浅析与配置实践
运维·网络协议·nginx·http·缓存
iCxhust1 天前
linux /etc 目录 etc是什么缩写
linux·运维·服务器·php
未来之窗软件服务1 天前
幽冥大陆(七十二) 东方仙盟-在线IP归属地自己封装—东方仙盟练气期
前端·javascript·tcp/ip·仙盟创梦ide·东方仙盟·阿雪技术观
QT 小鲜肉1 天前
【Linux命令大全】001.文件管理之mc命令(实操篇)
linux·运维·服务器·前端·笔记
黑蛋同志1 天前
bugzilla生成证书并配置 HTTPS访问
网络协议·http·https
捧 花1 天前
前端如何调用后端接口(HTML + JS & Vue )
服务器·golang·vue·api·前后端交互
一只努力学习的Cat.1 天前
Linux:五种IO模型
linux·服务器