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

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

相关推荐
-dzk-6 小时前
【3DGS复现】Autodl服务器复现3DGS《简单快速》《一次成功》《新手练习复现必备》
运维·服务器·python·计算机视觉·3d·三维重建·三维
2301_772093568 小时前
tuchuang_后端_前端_注册登录
数据库·后端·网络协议·mysql·wireshark
利刃大大8 小时前
【高并发服务器】三、正则表达式的使用
服务器·c++·正则表达式·项目
芝士小宇8 小时前
tcp 服务器的设计思路
服务器·网络·tcp/ip
wu~9709 小时前
web服务器有哪些?服务器和web服务器有什么区别
运维·服务器·前端
₯㎕星空&繁华9 小时前
阿里云服务器安装MySQL服务器
服务器·ubuntu·阿里云·云计算
爱倒腾的老唐9 小时前
13、Linux 基本权限
linux·运维·服务器
cililin9 小时前
第4章 文件管理
linux·服务器·网络·操作系统·unix
薰衣草233310 小时前
linux练习-2
linux·运维·服务器
驰羽11 小时前
C++网络编程(三)TCP通信流程
服务器·网络·tcp/ip