【网络编程】第2章(4)服务器软件设计概论

简介: 【网络编程】第2章(4)服务器软件设计概论

服务器软件设计概论

服务器的设计主要有以下三个方面:


传输协议:无连接和面向连接的访问


状态信息:无状态的和有状态的服务器


并发性:循环和并发服务器的实现


我们首先要有一个服务器设计算法,才能设计出服务器软件


概念性的服务器算法(最简单的)

1.创建一个套接字,将它绑定到一个熟知的端口上,并期望在这个端口上接受请求


2.进入无限循环,在该循环中,服务器接受来自客户的请求


3.处理这一请求,构造应答,然后将这个应答发回给客户


四种基本类型的服务器


一种循环的、面向连接的服务器的算法


1.创建套接字并将其绑定到他所提供服务的熟知端口上


2.将该端口设置为被动模式,使其准备为服务器所用


3.从该套接字上接受下一个连接请求,获得该连接的套接字


4.重复地读取来自客户的需求,构造响应,按照应用协议向客户发回响应;


5.当与某个特定客户完成交互时,关闭连接,并返回步骤3以接受新的连接。


循环的、无连接的服务器的算法


创建套接字并将其绑定到所提供服务的熟知端口上


重复地读取来自客户的请求,构造响应,按照应用协议向客户发回响应


并发的、无连接的服务器的算法


1.主1 创建套接字并将其绑定到所提供服务的熟知地址上。让该套接字保持为未连接的


2.主2 反复调用recvfrom接受来自客户的下一个请求,创建一个新的从进程(可能在一个新进程中)来处理响应


3.从1 从来自主进程的特定请求以及到该套接字的访问开始


4.从2 根据应用协议构造应答,并用sendto将该应答发回客户


5.从3 退出


并发的、面向连接服务器的算法


1.主1 创建套接字并将其绑定到所提供服务的熟知地址上。让该套接字保持非连接


2.主2 将该端口设置为被动模式,使其准备为服务器所用


3.主3 反复调用accept以便接受来自客户的下一个连接请求,并创建新的从线程或进程来处理响应


4.从1 由主进程传递来的连接请求(即针对连接的套接字)开始


5.从2 用该连接与客户进行交互:读取请求并发回响应


6.从3 关闭连接并退出。在处理完来自客户的所有请求后,从线程就退出


另外,单线程异步IO也能实现表面上的并发


1.创建套接字S并将其绑定到所提供服务的熟知端口上。将该套接字加到一个表中,该表中的项是可以进行I/O的描述符


2.使用select在已有的套接字上等待I/O


3.如果S准备就绪,使用accept获得下一个连接,并将这个新的套接字NSi加入到表中,该表中的项是可以进行I/O的描述符


4.如果是S以外的某些套接字准备就绪,就使用recv或read获得下一个请求,构造响应,用send或write将响应发回给客户


5.继续按照以上的步骤2进行处理


服务器设计算法选择要根据具体的应用和环境,但是服务器都会出现死锁的困扰,为什么会出现死锁?


如果服务器与客户通信使用了可能会阻塞的系统调用,一个不能正常工作的客户可能会引起单线程服务器死锁。在服务器中,死锁是一个严重的问题,因为它意味着一个客户的行为会使服务器不能处理其他客户的请求


相关文章
|
5月前
|
存储 弹性计算 网络协议
阿里云服务器ECS实例规格族是什么?不同规格CPU型号、处理器主频及网络性能参数均不同
阿里云ECS实例规格族是指具有不同性能特点和适用场景的实例类型集合。不同规格族如计算型c9i、通用算力型u1、经济型e等,在CPU型号、主频、网络性能、云盘IOPS等方面存在差异。即使CPU和内存配置相同,性能参数和价格也各不相同,适用于不同业务需求。
448 144
|
6月前
|
JSON 监控 API
在线网络PING接口检测服务器连通状态免费API教程
接口盒子提供免费PING检测API,可测试域名或IP的连通性与响应速度,支持指定地域节点,适用于服务器运维和网络监控。
619 0
|
6月前
|
机器学习/深度学习 存储 监控
内部文件审计:企业文件服务器审计对网络安全提升有哪些帮助?
企业文件服务器审计是保障信息安全、确保合规的关键措施。DataSecurity Plus 是由卓豪ManageEngine推出的审计工具,提供全面的文件访问监控、实时异常告警、用户行为分析及合规报告生成功能,助力企业防范数据泄露风险,满足GDPR、等保等多项合规要求,为企业的稳健发展保驾护航。
168 0
|
7月前
|
存储 运维 API
HPE OneView 10.0 - HPE 服务器、存储和网络设备集中管理软件
HPE OneView 10.0 - HPE 服务器、存储和网络设备集中管理软件
148 1
|
5月前
|
存储 监控 Linux
Dell OpenManage Enterprise 4.5 - Dell 服务器、存储和网络设备集中管理软件
Dell OpenManage Enterprise 4.5 - Dell 服务器、存储和网络设备集中管理软件
135 0
|
8月前
|
存储 安全 Linux
Dell OpenManage Enterprise 4.4 - Dell 服务器、存储和网络设备集中管理软件
Dell OpenManage Enterprise 4.4 - Dell 服务器、存储和网络设备集中管理软件
274 4
Dell OpenManage Enterprise 4.4 - Dell 服务器、存储和网络设备集中管理软件
|
8月前
|
存储 消息中间件 弹性计算
阿里云服务器ECS计算型c7和通用算力型u1在适用场景、计算性能、网络与存储性能等方面的对比
阿里云ECS服务器u1和c7实例在适用场景、性能、处理器特性等方面存在显著差异。u1为通用算力型,性价比高,适合中小企业及对性能要求不高的场景;c7为企业级计算型,采用最新Intel处理器,性能稳定且强大,适用于高性能计算需求。u1支持多种CPU内存配比,但性能一致性可能受底层平台影响;c7固定调度模式,确保高性能与稳定性。选择时可根据预算与性能需求决定。
407 23
|
9月前
|
SQL 数据采集 人工智能
“服务器老被黑?那是你没上AI哨兵!”——聊聊基于AI的网络攻击检测那些事儿
“服务器老被黑?那是你没上AI哨兵!”——聊聊基于AI的网络攻击检测那些事儿
344 12
|
9月前
|
安全 网络安全 定位技术
网络通讯技术:HTTP POST协议用于发送本地压缩数据到服务器的方案。
总的来说,无论你是一名网络开发者,还是普通的IT工作人员,理解并掌握POST方法的运用是非常有价值的。它就像一艘快速,稳定,安全的大船,始终为我们在网络海洋中的冒险提供了可靠的支持。
274 22

热门文章

最新文章