15第15章 构建的网络服务器.ppt

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
15第15章 构建的网络服务器

第15章 构建网络服务器 1 2 多客户端实现 基于xinetd的网络服务应用 3 构建简单的HTTP网络服务器 * * 多进程实现基本框架 * * 对SIGCHLD信号的处理 每新创建一个子进程将申请一个进程控制块来专门处理与该客户端的连接,而每个处理单元在完成相应的操作后将退出,根据进程的基本操作,子进程退出资源由父亲进程在退出时回收,因此,需要显式的对子进程退出信息进程处理,以避免大量的僵死进程。 最简单的对SIGCHLD信号的处理方式是忽略它。如下所示: signal(SIGCHLD, SIG_IGN); * * SIGPIPE信号处理 一个进程在向某个接收到RST的socket进行写操作时,内核将向该进程发送SIGPIPE信号,同时,写操作返回EPIPE。 该信号默认操作是终止当前进程,但对于服务器来说,有必要捕获这个信号,因此服务器不能因为向某个接收了RST的socket执行错误的写操作而导致整个服务器中止。 为SIGPIPE信号安装处理方式所示: signal(SIGPIPE,handler); * * 多线程实现多客户端 第15章 构建网络服务器 1 2 多客户端实现 基于xinetd的网络服务应用 3 构建简单的HTTP网络服务器 * * 网络服务器动态配置项 (1)启动方式可配置。即是否在系统启动时自动运行是可选的,在Linux下,分两大类型的网络服务,基于xinetd的服务由xinetd守候进程决定其是否运行,非xinetd服务需要自己编写脚本程序。 (2)启动参数可配置,每个应用网络服务器一般都有配置文件,可以通过配置文件修改其启动参数。 xinetd是一个网络守候进程,该进程用来统一管理网络负载不是太大的小型服务 。 * * 基于xinetd创建网络服务过程 在系统支持xinetd服务的条件下: (1)编写服务源代码。将可执行文件存储在指定位置。 (2)在/etc/xinetd.d/目录下创建该服务的配置文件,设置正确的启动参数。 (3)在/etc/services文件中为该服务指定应用端口,注意服务名必须一致。 (4)重新启动xinetd服务,则客户可以向其发起连接请求了。 * * 应用示例 -----编写编译网络服务源代码 * * 应用示例 -----修改/添加启动配置 * * 应用示例 -----指定应用端口,重启服务 第15章 构建网络服务器 1 2 多客户端实现 基于xinetd的网络服务应用 3 构建简单的HTTP网络服务器 * * 主要考虑因素 (1)服务器程序需要设置为守候进程,自己监听网络,自己写日志信息,列出网络信息; (2)服务器的启动方式需要自己添加配置文件,设置是否在系统启动时启动,这需要编写启动shell脚本程序,最简单的方法是在/etc/rc.local文件中添加一条运行程序的命令,根据不同发行版本的Linux,相应的配置文件不尽相同; (3)一般需要专门的客户端程序,例如FTP服务,HTTP服务都有相应的客户端(虽然这些客户端目前基于特定的应用协议)。如果是自己编程实现,则需要自己编写客户端程序。 * * 代码设计与实现 见课表代码。

文档评论(0)

liwenhua00 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档