Linux网络程序设计课程设计报告 2.doc

Linux网络程序设计课程设计报告 2.doc

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Linux网络编程课程设计报告 PAGE PAGE 2 PAGE PAGE 1 Linux网络编程 课程设计报告 TOC \o 1-3 \h \u 1880 第一章 题目分析 1 16376 第二章 设计文档 3 2995 第三章 关键技术分析 7 14238 第四章 系统界面 13 30386 第五章 源代码 14 Linux网络编程课程设计报告 PAGE PAGE 2 Linux网络编程设计 题目分析 实现一个并发、IO复用的守护进程时间服务器,要求当客户端向服务器发送“what’s time?”字符串时,服务器回应当时的系统时间字符串。 守护进程是在后台运行不受终端控制的进程(如输入、输出等),一般的网络服务都是以守护进程的方式运行。 守护进程脱离终端的主要原因有两点:用来启动守护进程的终端在启动守护进程之后,需要执行其他任务。(如其他用户登录该终端后,以前的守护进程的错误信息不应出现)由终端上的一些键所产生的信号(如中断信号),不应对以前从该终端上启动的任何守护进程造成影响。 要注意守护进程与后台运行程序(即加&启动的程序)的区别。 在系统启动时由系统初始化脚本启动,这些脚本一般在/etc或/etc/rc开头的目录。如inet超级服务器,web服务器等; 许多网络服务器是由inet超级服务器启动的,如Telnetd、FTP等; cron守护进程按一定的规则执行一些程序,由它启动的程序也以守护进程的方式运行。 守护进程可以在用户终端上启动,这是测试守护进程或重新启动守护进程常用的方法。 由于守护进程没有控制终端,在发生问题时它要用一些其它方式以输出消息。 可以通过向文件里写数据来输出消息,但这样不好管理。(因为每一个守护进程要对应一个文件)。 一般用syslogd守护进程来登记出错信息。 用户守护进程登记出错信息创建一个Unix域数据报套接口,并向syslogd守护进程绑定的路径名发送我们的消息,我们就能从自己的守护进程向syslogd发送登记信息。 可以创建一个UDP套接口,将日志消息发到回馈地址及端口号514(syslog服务使用的端口号); 更简单的方法是利用syslog函数。syslog函数是输出这些消息的标准方式,它将消息发往syslogd守护进程。 第二章 设计文档 2.1 进程组    每个进程有一个唯一的进程组ID。进程组ID类似于进程ID--它是一个正整数,并可存放在pid_t数据类型中。    每个进程组有一个组长进程。组长进程的标识是,其进程组ID等于其进程ID,进程组组长可以创建一个进程组,创建该组中的进程,然后终止,只要在某个进程组中有一个进程存在,则该进程组就存在,这与其组长进程是否终止无关。从进程组创建开始到其中最后一个进程离开为止的时间区间称为进程组的生命期。某个进程组中的最后一个进程可以终止,也可以参加另一进程组。 进程调用setgid可以参加一个现存的组或者创建一个新进程组(setsid也可以创建一个新的进程组,后面将用到)。    2.2 会话期    会话期(session)是一个或多个进程组的集合。其中,在一个会话期中有3个进程组,通常是由shell的管道线将几个进程编成一组的。    2.3 会话期和进程组的一些特性:    一个会话期可以有一个单独的控制终端(controlling terminal),这一般是我们在其上登录的终端设备(终端登录)或伪终端设备(网络登录),但这个控制终端并不是必需的。    建立与控制终端连接的会话期首进程,被称之为控制进程(contronlling process)。一个会话期中的几个进程组可被分为一个前台进程组(foreground process group)以及一个或几个后台进程组(background process group)。    假如一个会话期有一个控制终端,则它有一个前台进程组,其他进程组为后台进程组。无论何时键入中断键(通常是delete或ctrl-c)或退出键(通常是ctrl-),就会造成将中断信号或退出信号送至前台进程组的所有进程。   ?    2.4. 守护进程的编程规则    2.5 脱离控制终端,登录会话和进程组    登录会话可以包含多个进程组,这些进程组共享一个控制终端,这个控制终端通常是创建进程的登录终端。控制终端,登录会话和进程组通常是从父进程继续下来的。我们的目的就是要摆脱它们,使之不受它们的影响。    其方法是在fork()的基础上,调用setsid()使进程成为会话组长。调用成功后,进程成为新的会话组长和新的进程组长,并与原来的登录会话和进程组脱离,由于会话过程对控制终端的独占性,进程同时与控制终端脱离。    s

文档评论(0)

159****8201 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档