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

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

相关推荐
10000hours9 分钟前
【SGL】Scatter-Gather List内存传输技术
linux·数据结构·网络协议·list·存储·sgl
白总Server14 分钟前
微软系统 红帽系统 网络故障排查:ping、traceroute、netstat
linux·运维·服务器·microsoft·中间件·架构·github
朝新_1 小时前
【Linux操作系统】第一弹——Linux基础篇
linux·服务器·网络
椿融雪1 小时前
基于muduo库实现高并发服务器
运维·服务器·muduo·网络库
wanhengidc1 小时前
AI服务器通常会运用在哪些场景当中?
运维·服务器·人工智能
测试工程喵1 小时前
Bearer Token的神秘面纱:深入解析HTTP认证头的设计哲学
网络·功能测试·网络协议·http·接口测试·模块测试·登录认证
wanhengidc1 小时前
我的世界云端服务器具体是指什么?
运维·服务器
翱翔的蠢猪1 小时前
两台服务器之前共享文件夹
运维·服务器·文件挂载·共享文件夹
小白学大数据1 小时前
Python爬虫+代理IP+Header伪装:高效采集亚马逊数据
爬虫·python·tcp/ip·scrapy
dancing9992 小时前
Golang的linux运行环境的安装与配置
linux·服务器·golang