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

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

相关推荐
小白博文23 分钟前
MobaXterm调用远程服务器(Linux)图形化界面应用
linux·运维·服务器
ddacrp1 小时前
RHEL_NFS服务器
linux·服务器·网络
百***35941 小时前
如何在树莓派部署Nginx并实现无公网ip远程访问内网制作的web网站
前端·tcp/ip·nginx
Maryfang132918915511 小时前
RTL8367RB的国产P2P替代方案用JL6107-PC的可行性及实现方法
单片机·网络协议·p2p
小无名呀2 小时前
tcp_Calculator(自定义协议,序列化,反序列化)
网络·c++·网络协议·tcp
朝九晚五ฺ3 小时前
用Rust从零实现一个迷你Redis服务器
服务器·redis·rust
阿巴~阿巴~3 小时前
深入解析UDP服务器核心开发机制
linux·服务器·网络协议·网络编程·udp服务器·recvfrom函数
北京耐用通信3 小时前
不只是延长,是“重生”:耐达讯自动化Profibus总线光端机如何让老旧设备数据“开口说话”?
人工智能·物联网·网络协议·自动化·信息与通信
q***31893 小时前
如何查询SQL Server数据库服务器的IP地址
服务器·数据库·tcp/ip