- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
服务器的设计.doc
UNIX网络的服务器程序设计方法
(刘凯 刘春旭,四川大学计算机学院)
摘要:介绍了几种网络操作模式和UNIX下基于TCP/IP协议的网络客户/服务器模式的程序架构。重点对客户/服务器模式中服务器程序的几种设计方法进行了讨论。
关键词:客户/服务器,Socket,进程,并发服务器
1.引言
1.1几种网络模式的介绍
对等网络Peer-to-Peer不需要专用服务器,每一台工作站都能充当网络服务的请求者和提供者,都有绝对自主权,也可以互相交换文件。这种类型的网络软件被设计成每一个实体都能完成相同或相似的功能。服务器Server-Based以服务器为中心,严格地定义了每一个实体的工作角色,即网络上的工作站无法在彼此间直接进行文件传输,需通过服务器作为媒介,所有的文件读取,消息传送等也都在服务器的掌握之中。/服务器Client/Server)模式(有时也称为主从式Master指将需要处理的工作分配给端和端处理,所谓的和并没有一定的界限,这取决于运行什么软件,简单的讲,是提出服务请求的一方,而是提供服务的一方。在/服务器中服务端所提供的功能不仅仅是文件、数据库服务,还有计算、通信等能力工作时由和各自负担一部分计算或通信的功能/服务器中最重要的应用技术之一把一个大型的计算机应用系统变为多个能互为独立的子系统,而服务器便是整个应用系统资源的存储与管理中心,多台客户机则各自处理相应的功能,共同实现完整的应用它传统的二层结构发展三层结构在上应用灵活多变的体系结构、丰富的开发环境和强大的设备驱动能力
图1.网络应用程序、Socket API和TCP/IP的关系
Socket API在BSD UNIX中首次提出,其目的是为了解决网络间程序通讯的问题。就其原理而言,面向连接的Socket类似于电话系统,无连接的Socket类似于电报系统。Socket实质上是为网络程序提供了通讯的端点号。对于每个网络程序的一个Socket,它首先有一个半相关的端点号的描述:{协议,本地地址,本地端口},如果它是与另一个Socket连接了的,则有一个相关的端点描述:{协议,本地地址,本地端口,远程地址,远程端口}。每个Socket有一个本地唯一的由操作系统分配的编号。
2.2 Socket 的系统调用
Socket是面向客户/服务器模式设计的,它针对客户和服务器程序提供了不同的系统调用。同时它还分为面向连接和无连接两种类型。下表列出了Socket API的基本函数(这里就不对调用参数进行说明了)。
表1 基本的Socket系统调用
函数名 用途 使用者 相关协议 说明 socket 建立一个通讯端点 客户、服务器 TCP、UDP bind 为一个连接的本地socket赋名 客户、服务器 TCP、UDP 使用TCP时,使用者为服务器;使用UDP时,使用者为客户 listen 监听socket上的连接 服务器 TCP accept 接受socket上的连接 服务器 TCP connect 对socket进行连接初始化 客户 TCP read 从socket接收信息 客户、服务器 TCP write 向socket发送信息 客户、服务器 TCP recvfrom 从socket接收信息 客户、服务器 UDP sendto 向socket发送信息 客户、服务器 UDP close 关闭socket 客户、服务器 TCP、UDP
2.3面向连接和无连接的客户/服务器模式的程序流程框架图
图2. 面向连接的客户/服务器模式
图3 无连接的客户/服务器模式
3.服务器程序的设计方法
3.1总述
客户程序一般比较简单,而服务器程序就比较复杂了,因为对服务器程序的设计,必须考虑到其响应速度和响应能力等服务性能因数。本文主要讨论的是面向连接的服务器程序设计方法。
总体上服务器程序可分为两类:并发服务器(Concurrent Server)和串行服务器(Iterative Server)。前者主要针对实时性的客户/服务器模式,后者主要针对服务量小的客户/服务器模式。
3.2 TCP串行服务器程序
串行服务器程序是这样的:每次它只能为一个连接过来的客户程序提供服务,只有在完全处理了一个客户的请求后,才能响应下一个客户的请求,即按照FIFO的原则响应请求。一般很少使用串行服务器程序,不过诸如时间/日期等服务量小的且实时性要求不高的服务器程序可以使用该方式。从进程控制的角度来讲,该方式的速度是最快的,因为它不进行进程控制,系统开销小。
3.3 传统的TCP进程并发服务器程序
在这种方式下,并发服务器程序在收到客户程序请求后,派生出一个子进程来为该客户程序服务,自己则回到等待状
您可能关注的文档
最近下载
- 《计算机网络技术基础 》(王崇刚)教案 (实训部分) 上机实训(五) .docx VIP
- 装修公司融资商业计划书(精选5).pptx
- 生化期末考试吉林大学2015.pdf VIP
- 计算机网络技术基础与实训.pptx VIP
- 2023年牛津译林版七年级英语下册Unit8 测试题(附答案).doc VIP
- 《计算机网络技术基础 》(王崇刚)教案 (实训部分) 上机实训(七) .docx VIP
- 消防法律法规知识培训.docx VIP
- 《计算机网络技术基础 》(王崇刚)教案 (实训部分) 上机实训(六) .docx VIP
- 《计算机网络技术基础 》(王崇刚)教案 (实训部分) 上机实训(四) .docx VIP
- 《计算机网络技术基础 》(王崇刚)教案 (实训部分) 上机实训(三) .docx VIP
文档评论(0)