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

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

相关推荐
前端白袍1 小时前
Nuxt:利用public-ip这个npm包来获取公网IP
网络协议·tcp/ip·npm
zhao3266857512 小时前
如何有效利用数据采集HTTP代理
网络·网络协议·http
单片机社区3 小时前
随笔十七、eth0单网卡绑定双ip的问题
网络·嵌入式硬件·网络协议·udp·智能路由器
安静的做,安静的学4 小时前
网络仿真工具Core环境搭建
linux·网络·网络协议
会飞的爱迪生5 小时前
http跳转https
网络协议·http·https
华纳云IDC服务商6 小时前
超融合服务器怎么优化数据管理?
运维·服务器
Fireworkitte6 小时前
HTTPS的加密原理
网络协议·http·https
JavaPub-rodert6 小时前
如何给自己的域名配置免费的HTTPS How to configure free HTTPS for your domain name
网络协议·http·https
小度爱学习6 小时前
数据链路层协议
运维·服务器·网络·网络协议·网络安全
Ciderw8 小时前
TCP三次握手和四次挥手
开发语言·网络·c++·后端·网络协议·tcp/ip·golang