网络编程 发what is time 返回时间.doc

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

网络程序设计 课程设计报告 目录 第一章 实验目的和要求 1 1.1实验目的 1 1.2实验要求 1 1.3 实验内容 1 第二章 实验内容 2 2.1对题目的分析 2 2.2守护进程的原理 3 第三章 设计实现 4 3.1关键技术分析 4 3.1.1创建守护进程 4 3.1.2 I/O复用的select函数 6 3.1.3网络套接字函数 7 3.2关键程序代码分析 8 3.2.1创建守护进程 8 3.2.2套接字编程 9 3.2.3 I/O复用的select函数 10 3.2.4处理客户连接 10 心得体会 11 参考文献 12 附录1程序界面截图 13 附录2 源代码 14 第一章 实验目的和要求 1.1实验目的 (1)熟练掌握所学到的网络套接字函数; (2)掌握UDP和TCP编程关键函数; (4)掌握使用select实现I/O复用;’s time?”字符串时,服务器回应当时的系统时间字符串。 现在要用守护进程实现一个时间服务器,呈现的功能是:服务器运行后自动成为守护进程,返回shell;客户端运行后收到服务器发来的当前时间。时间资讯传递给用户 在Client/Server模式下,服务器监听(Listen)在一个特定的端口上等待客户连接。连接成功后服务器和客户端通过端口进行数据通信。守护进程的工作就是打开一个端口,并且等待(Listen)进入连接。如果客户端产生一个连接请求,守护进程就创建(Fork)一个子服务器响应这个连接,而主服务器继续监听其他的服务请求。 独立运行的守护进程由init脚本负责管理,所有独立运行的守护进程的脚本在/etc/rc.d/init.d/目录下。系统服务都是独立运行的守护进程包括:syslogd和cron等。运行独立的守护进程工作方式称作:stand-alone。它Unix传统的C/S模式的访问模式。服务器监听(Listen)在一个特点的端口上等待客户端的联机。如果客户端产生一个连接请求,守护进程就创建(Fork)一个子服务器响应这个连接,而主服务器继续监听。以保持多个子服务器池等待下一个客户端请求。工作在stand-alone模式下的网络服务有route、gated。另外是大家最熟悉是Web服务器:Apache和邮件服务器Sendmail、域名服务器Bind。因为这些负载很大服务器上,预先创子服务器,可以通过客户的服务速度。在Linux系统中通过stand-alone工作模式启动的服务由/etc/rc.d/下面对应的运行级别当中的符号链接启动。 第三章 设计实现 3.1关键技术分析 3.1.1创建守护进程 在linux操作系统中在系统的引导的时候会开启很多服务,这些服务就叫做守护进程。 守护进程是脱离于终端并且在后台运行的进程。守护进程脱离于终端是为了避免进程在执行过程中的信息在任何终端上显示并且进程也不会被任何终端所产生的终端信息所打断。 守护进程,也就是通常说的Daemon进程,是Linux中的后台服务进程。它是一个生存期较长的进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程常常在系统引导装入时启动,在系统关闭时终止。   由于在Linux中,每一个系统与用户进行交流的界面称为终端,每一个从此终端开始运行的进程都会依附于这个终端,这个终端就称为这些进程的控制终端,当控制终端被关闭时,相应的进程都会自动关闭。但是守护进程却能够突破这种限制,它从被执行开始运转,直到整个系统关闭时才退出。如果想让某个进程不因为用户或终端或其他地变化而受到影响,那么就必须把这个进程变成一个守护进程。创建一个守护进程如下图2-2守护进程: 图2-2 守护进程服务器流程图 创建守护进程,要先创建子进程,然后再退出父进程。 使用的是系统函数setsi使进程完全独立出来,从而摆脱其他进程的控制。“/”)更改。 重设文件权限掩码,使新文件的权限位不受原文件模式创建掩码的权限位的影响,使用函数umask()。 close()关闭文件描述符。同文件权限码一样,用fork函数新建的子进程会从那里继承一些已经打开了的文件。这些被打开的文件可能永远不会被守护进程读写,但它们一样消耗,而且可能导致所在的文件系统无法卸下?实现基于I/O多路复用的异步并发编程。 当server要对外提供大量的client请求服务时,假如使用阻塞方式,在单线程中,由于accept和recev都是阻塞式的,那么当一个client被服务器accept后,它可能在send发送消息时阻塞,因此服务器就会阻塞在recev调用。即时此时有其他的client进行connect,也无法进行响应。而如果使用select,在服务器端先注册由socket创建的文件描述符,然后进入se

文档评论(0)

173****7830 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档