《2022年Linux多进程并发服务器 .pdf》由会员分享,可在线阅读,更多相关《2022年Linux多进程并发服务器 .pdf(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、四 川 大 学 计 算 机 学 院、软件 学 院实验报告学号:_1143111006 _ 姓名:刘家豪 专业:软件工程 班级:5 班第 7周课程名称信息安全产品开发实践实验课时3 实验项目并发服务器实验时间2013.10.18 15:00- -2013.10.18 15:40 实验目的1.自己编写程序实现远程控制系统中使用到函数popen功能;2.修改远程控制服务器代码,使得服务器同时能够向多个用户提供服务。实验环境 Windows7-64bit VMware9.0 RedHat Enterprise Linux 6.0实验内容(算法、程序、步骤和方法)多进程服务器模型架构设计图:( TCP实
2、现)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 7 页 - - - - - - - - - 基本程序架构:上上次实验我们就已经实现了C/S 架构的通讯,那么这次将其改为多进程的话,在源码上做的修改如下:(客户端无需修改,仅仅修改服务器端代码)解释下:原来的代码中,我们是在服务器端建立一个死循环来不断监听客户端的连接请求并对连接了的客户端进行服务(第二个注释掉的死循环),我们要修改为多进程的话就不再是监听到有客户端链接时执行死循环为其服务,而是创建一个子进名师资料总结
3、- - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 7 页 - - - - - - - - - 程来为这次连接服务,从上面的代码可以看出,每当有新的连接时都由子进程来执行 process 函数来为其服务, process 函数内容如下(类似于上面被注释掉的那个死循环):后面的代码就不给出来了,意义不大,跟第二个循环是一样的。总结一下:改动的地方就一点,每当监听到连接时,都创建一个子进程为其服务,仅此而已!自己编写程序实现远程控制系统中使用到函数popen功能;这个说白了就是自己下一个函数来
4、执行客户端发来的命令并将结果返回给客户端,思路是:用 exec 函数族来执行客户端的命令,用管道来重定向屏幕的输出到文件,或说是字符串吧,然后将其返回给客户端。实现:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 7 页 - - - - - - - - - 解释下:这个程序截图就是在上面说的process 函数的后半部分, 跟上次的程序相比,改动有几点:不用 pepon 来执行命令,改用 execlp 来执行命令,并用 dup2来重定向屏幕的输出到管道的输入,然后读取管道
5、的输出。 这里也是创建一个子进程来实现执行 execlp 函数,在父进程中读取结果,值得注意的是,在父子进程中要分别关闭管道的写和读。好了,其实改动这两个功能也不是很难,就上面几点了,改好之后, 下面就执行代码看下预期效果吧。程序运行结果截图:编译:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 7 页 - - - - - - - - - 运行:从程序运行结果可以看出达到了预期目标。数据记录和计算无结论(结果)见实验内容部分名师资料总结 - - -精品资料欢迎下载 - -
6、 - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 7 页 - - - - - - - - - 小结这次试验我觉得主要是回顾了三个内容:第一、实现多进程无非就是从新练习下进程创建的操作,当然也加深了对进程创建函数的了解;第二,以前对管道的学习不多,称这次机会到时重新熟悉了下,虽然这次用的也不是很多,但很久没用了,现在还是回顾并熟悉了;第三,exec 函数族是个很好玩的东西,这次试验我觉得都比较简单,但要说的话我觉得exec 函数族这块相对难那么一点,更神奇的是它和管道的联合使用很好玩!指导老师评议成绩评定:指导教师签名:实
7、验报告说明专业实验中心实验名称要用最简练的语言反映实验的内容。如验证某程序、定律、算法,可写成“验证”;分析。实验目的目的要明确,要抓住重点,可以从理论和实践两个方面考虑。在理论上,验证定理、公式、算法,并使实验者获得深刻和系统的理解,在实践上,掌握使用实验设备的技能技巧和程序的调试方法。一般需说明是验证型实验还是设计型实验,是创新型实验还是综合型实验。实验环境实验用的软硬件环境(配置)。实验内容(算法、程序、步骤和方法)这是实验报告极其重要的内容。这部分要写明依据何种原理、定律算法、或操作方法进行实验,要写明经过哪几个步骤。还应该画出流程图(实验装置的结构示意图),再配以相应的文字说明,这样
8、既可以节省许多文字说明,又能使实验报告简明扼要,清楚明白。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 7 页 - - - - - - - - - 数据记录和计算指从实验中测出的数据以及计算结果。结论(结果)即根据实验过程中所见到的现象和测得的数据,作出结论。小结对本次实验的体会、思考和建议。备注或说明可写上实验成功或失败的原因,实验后的心得体会、建议等。注意:实验报告将记入实验成绩;每次实验开始时,交上一次的实验报告,否则将扣除此次实验成绩。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 7 页 - - - - - - - - -