欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    Linux编程实训手册.docx

    • 资源ID:7368706       资源大小:49.61KB        全文页数:22页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Linux编程实训手册.docx

    实验名称1.inUX文件操作指导教师姓名学号班级实验地点实验日期同组同学教师评语实验成绩评阅教册一、实验目的:1 .熟悉1.inUX系统目录结构,熟悉主要系统目录的用途,了解常用系统文件的作用:2 .掌握1.inux操作系统的基础命令的使用方法,包括目录创建、目录列表、切换工作目录,文件创建、豆制、更名、制除、权限设发,创建硬连接、符号链接,文件内容杳君等,文件查找、打包解包,查看历史命令、输出到文件。3 .对"0重定向和管道功能有些初步认识。二、实验内容:1 .以普通用户身份登录1.inUX,打开命令窗口,利用PWd命令查后用户“家”目录路径.2 .查看IS命令的详细使用方法,获取IS命令的简要帮助信息.3 .用mkdir命令建立工作目录.目录名为“学号+姓名M)I”.再在该目录下创建子目录dir1.和目录dir2.并用ChmOd命令将其权限分别设区为rwxrxrwx和rw,x,用Is命令予以验证工作目录及其子目录是否存在.提示:在WindOWS环境下输入中文,可复制粘贴到1.inUX虚拟机下,作为文件名或文件内容使用.4 .执行命令Cd命令进入目录dir1.,用p>d命令验证当前目录路径,用t。UCh命令建立文本文件fi1.e1.txt,并将fi1.e1.txt的权限更改为700,用Is命令验证.5 .使用KCdi1.程序打开fi1.e1.Ixi,输入下面一段文字后,关闭该文件.DongguanuniversityOftechnogogyCoaiputerendnetworksecurityco1.1.ege6 .利用IeSS或*>re命令显示文件fi1.e】的内容,用WC命令统计字符数、的词数和行数7 .用IS命令有看用户家命令卜有哪些除藏文件。8 .利用IS1fiIe1.命令列出文件Fi1.e1.的较详细的信息,记录文件权限.最后修改时间等.9 .利用CP命令命令创建文件fi1.件的副本fa,用IS命令验证.10 .利用mv命令将fa文件名更改为fi1.e_a11 .利用E命令将文件fi1.ea删除,检查命令执行结果。12 .用管道方法将文件九WP3$SWd内容送SOr1.排序输舟,并用WC命令对黜出行'字节数、单词数进行计数.13 .在用户家目录,把工作目录打包压缩成work.tar.gz,验证结果.11.删除整个工作目录、15 .将打包文件ork.Iar.3解压缩解包到家目录和/imp目录下,验证执行结果16 .将上述命令执行过程截图复制,粘贴到第四部分17 .将实验报告取名为”学号-姓名-1.inux文件操作”上传到ftp相应目录下晨涉及实验的相关情况介绍(包含使用软件或实验设备等情况):安装1.inUX操作系统的计兑机四、报告内容(给出每个命令输入,其后粘贴及执行结果截图,如果结果太长,可仅笑制前面6行的豉图)五、实验分析和总结课程:1.inUX系统编程实验名称1.inuxShe1.1.编程指导教师姓名学号班级实验地点实验日期同组同学教师评语实验成绩评阅教册一、实验目的:1 .通过本实验练习,使学生了解常用SHE1.1.的编程特点,掌握SHE1.1.程序设计的基础知识。2 .对SHE1.1.程序流程控制、SHE1.1.程序的运行方式、ba*h程序的调试方法及bash的常用内部命令有进一步的认识和理解。3 .基本掌握编写SHE1.1.程序的步骤、方法和技巧。4 .掌握使用选择结构、循环结构、条件结构、test条件的编程方法5 .掌握输入、辘出语句使用方法。二、实验内容:先创建用户家目录卜.创建文件名为“姓名+学号+02”的子目录,作为本次实验目录,本次实验的所仃代码都放到该目录下。要求将所有源代码与数据文件打包成文件Iab2.tar.gz,压缩包与实验报告分别提交到相应目录下。主要实验任务有:1.编写She1.1.脚本task21.,提示用户输入两个单词,并将其读入,然后比较这两个单词,如果两个单词相同则显示"Mu1.ch”,并显示“Endofprogram",如果不同则显示“NoMatchw,再显示“Endofprogram*2.编写脚本task22,在本次实脸目录下创建n>1.,m2,m3,m4四个目录,同时创建m1.txt,n2.txt,m3,1.t,M.IXt等四个文件,并将m1.Ix1.,m2,tx1.,m3,1.x1.,m4.Ix1.四个文件分别拷贝到各自相应的目录下。2.创建以下菜单脚本程序task3:USER:*HOST:*DATE:*20*A:创建子目录并发制文件B:文件权限测试C:文件字符转换D:目录内容显示Q:退出系统A:在本实验目录卜创建目录dir1.,其存取权限为(drwxrxx10测试目录幽实存在后,在该目录下创建2个空文件fi1.e1.和me20B:输入一个文件名,测试当前用户对该文件是否有r、w、X的权限,输出测试结果。C:将/Ctcgsswd文件的小写字符转换为大写,逐一显示转换后的文件内容(提示1.inUX卜小写转大写命令是D:用IS-Ii显示本次实验R录下文件列表,用命令more显示IaSk1.的内容。任务3.文件pc.txt中保存了某班学生的数学成绩(第项S*为学生学号,第二项数字为成绩),试编写she1.1.脚本task23,完成以下操作:按A(90T00)、B(80-89).C(70-79).D(60-69)、E(不及格)五档对成绩进行统计、计算后输出各个分数段的学生人数及总平均分;将各分数段的信息分别存入A、B、C、D、E五个文件中(在统计过程中动态完成)。pc.txt文件内容如下:S1:75S2:68S3:99S4:83S5:23S6:77S7:75S8:69S9:9IS10:83SI1:65SI2:71三、涉及实验的相关情况介绍(包含使用软件或实验设得等情况):安装1.inUX操作系统的计算机四、报告内容(分任务给出源代码、运行命令、测试数据和命令输出结果截图)五、实验分析与总结实验名称1.inUXC库函数使刖指导教师姓名学号班级实验地点实验日期同组同学教师评语实验成绩评阅教册一、实验目的:1.练习字符串处理函数编程,用快速排序、数据结构、二叉树处理库函数编写简单应用,了解1.inux库函数在数据管理及持序、检索中的应用。二、实验内容:先创建用户家目录卜创建文件名为“姓名+学号+03”的子目录,作为本次实验目录,本次实验的所有代码都放到该目录下。要求将所有源代码与数据文件打包成文件“学号-姓名Jab3.tar.gz",压缩包与实验报告分别上传到指定目录下.任务1:.编写程序task31.c,输入两个字符串si、s2,将S1.中所有s2子串删去后输出。如若输入s1.="Thisismymotheruniversity",s2="er",则输出为"Thisismymothunivsityn任务2.编写程序task32.a输入一个1.iiU1.X命令串S1.输出各命令参数,每行一个。例如:若输入的命令字符串是“Is1.-aabc«“,则程序输出为:Is-I-aabc*:提示:从终端读入一个文本行到字符申CharbUtIMAXSIZE1.可调用函数可调用函数:fgcts(buf,MAXSIZE,stdin);",其中stdin是表示键盘输入设备的文件指针。任务3.编写程序task33.c,输入一个1.inUX命令串si,找出并显示命令名、命令选项、命令参数。例如:若输入的命令字符中是%-I-aabc*”,则程序输出应该是:命令名:IS命令选项:-I命令选项:-a命令参数:abc*任务4(可选):写一个程序tas34.C,调用qsort函数,对浮点型数组f1.oatnum10=(90.9,51.8,32.7,83.6.94.5,45,4,36.3,47.2,28.1,19.0进行排序,运行程序验证正确性任务5(可选):假设有一个字符数组charnum10三"he1.1.o","wor1.d”,"e","dgu1.",“university","abc","china","Dongguan","Guangdong","Songshanhu","computer")写个程序task35.c,调用1.inUX二叉树操作函数,用数组num按字典序建立二叉树,按中序遍历瞅序输出各字符串元素的值,运行程序验证正确性。三、涉及实验的相关情况介绍(包含使用软件或实验设备等情况):安装1.inUX操作系统的计算机四、报告内容(给出每个任务的要求、编程思想、源代码,后接编程过程、测试数据、运行结果截图)五、实验分析和总结等实验名称1.inuxVO编程指导教师姓名学号班级实验地点实验日期同组同学教师评语实验成绩评阅教册一、实验目的:1.练习用UN1.X1./0函数进行文件读写编程,掌握用UNIXI/O函数将文本信息、二进制数据、结构体数据读写文件的基本方法。2.练习测时函数使用,通过测增UNIXI/O函数运行时间,建立UNIXI/OAPI函数基本开俏的概念。二、实验内容与要求:先创建用户家目录下创建文件名为“姓名+学号+04”的子目录,作为本次实脸目录,本次实验的所有代码都放到该目录下,要求将所有源代码与数据文件打包成文件“学号-姓名-Iab4.tar.gz“,压缩包与实验报告分别上传到指定目录卜;任务1.在当前用户目录下创建数据文件“udenuxi,文件的内部信息存储格式为Snamc:S#:Sdep1.:SagC:Sscx,即“姓名:学号:学院:年龄:性别”,每行一条记录,输入不少于10条学生记录,其中包括学生本人记录。编写程序task41.c从文件中查找SdePt字段值为“计算机学院”的文本行,输出到文件CSSIUden1.tXt中,保存时各字段顺!序调整为S#:Sname:Sage:SsexSdep1.提示:(I)从终端读入一个文本行到字符串CharbUfIMAXS1.ZE1.可调用函数可调用函数:-ets(buf.MXS1ZE,Stdin)广,其中stdin是表示键盘输入设备的文件指针。(2)用函数SIrehr或S1.r1.Ok可以把一个文本行字符串中各个单词分割和提取出来,使用方法和案例可查阅百度。任务2.调用UniX1.Q库函数,编写程序task42.c,从键盘读入5个学生的成绩信息,包括学号、姓名、语文、数学、英语,成绩允许有一位小数,存入一个结构体数组,结构体定义为:t>pcdcfstruct_subjcc1.charsno(20:学号charna11e20J;"姓名f1.oatChinese:谙文成绩oatmath;数学成绩f1.oatcng1.ish;"英语成绩Isubject;将学生信息,逐条记录写入数据文件data.最后读回第1、3、5条学生成绩记录,显示出来,检查读出结果是否正确“任务3(可选):在1.inux环境3可以调用库函数gettimeofday测量一个代码段的执行时间,请写一个程序task43.c,测量read、write、眦ad、fwrie函数调用所需的执行时间,并对四个函数的运行时间进行对比分析。提示:由于一次函数调用时间太短,建议获取一个函数运行多次(如100ooO次)所需时间,以减少误差。任务4:在1.inUX系统环境下,编写程序task44.c,对一篇英文文章文件的英文单词词频进行统计。(1)以“单词:次数''格式输出所有单诃的词频(必做)(2)以“单词:次数”格式、按词典序输出各单词的词频(选做)(3)以“单词:次数”格式输出出现频度最高的IO个单词的词频例如,若某个输入文件内容为:GNUisanoperatingsystem(hatisfive'cfiwarc-thatis,itrespectsuscs,freedom.Thedeve1.opn>en(ofGNUmadeitpossib1.e(ouseacomputerwithoutSOf1.Warethatwou1.dIramPIeyourfreedom.则输出应该是:GNU:2is:3it:2提示:可以调用字符串处理函数、二叉树处理函数等库函数J涉及实验的相关情况介绍(包含使用软件或实验设备等情况):安装1.inUX操作系统的计算机四、报告内容(给出每个任务的要求、设计思想、源代码,后按编译过程、测试数据与运行结果截图)五、实验分析和总结(任务3要求进行分析)实验名称1.inux进程控制编程指导教师姓名学号班级实验地点实验日期同组同学教师评语实验成绩评阅教册一、实验目的:1 .练习使用1.inUX系统谢用函数创建进程、加载程序、终止进程、撤销进程:2 .练习利用信号机制实现周期性监控功能的编程:3 .编写用信号机制对动态产生的进程实施管理,掌握多进程并发编程的基本方法。二、实验内容:先创建用户家目录下创建文件名为“姓名+学号+05”的了目录,作为本次实验目录,本次实验的所有代码都放到该目录下。要求将所有源代码与数据文件打包成文件''学号-姓名-Iab5ar.gz",压缩包与实验报告分别上传到指定11录下。任务1:编写个进程创建实验程序task51.c,创建如图所示的进程p1.族亲结构,其中p1.是程序启动时由加载程序创建第一个进程。各进程的1.T<.输出信息分别如下:-也p1.:Iamfatherprocessp1.:当前时间是V年月日时分秒>Y1.rp1.21p1.22p1.2:1amyoungbrotherprocess1P21.:我的学号是<您的学号xx>p1.22:我的姓名是<您的姓名xxx>提示:获得当前系统时间的函数是IimejIime(time*t);将1.ime类型的的时间转换成时间字符串的函数是:char*ctime(consttime_t*tine);其使用方法见教材3.2.4思考:如何验证产生的进程符合如图的族亲关系?任务2:参考教材Ahe1.1.exc代码,实现一个简单的交互式she1.1.程序IaSk52.c,具备的功能至少1:(1)打印提示符:获取用户输入指令:解析指令:寻找命令文件,执行指令(1)显示命令提示符;(2)强取用户输入指令:解析指令:寻找命令文件,执行指令:(3)前一个命令完成后才继续显示命令提示符,等待用户输入下一条命令:(3)如果输入"exit”或"1.ogout”,则退出she1.1.(4)允许命令参数间仃多个空格,也允许命令前后有空格(5)支持输出重定向和管道功能。提示:可参考上一次实验分解命令行的代码,如何实现管道命令请参考1.inux编程第7章7.1.5和练习题7.4。任务3:写一个关键文件内容监控的daemon程序(ask53.c.该程序每隔5分钟读取task53.c文件的内容,计算hash值,如文件内容被篡改,则将检测时间和文件hash值写入日志文件1.og,测试程序的正确性。提示:可由文件内容计算一个hash值(又称数字指纹),如果hash值发牛.变化,般可认为文件被:女改了。种简单hash值计算方法是将个文件按四字节大小进行切分,每个四字节段看成一个无符号整数,把各个分段对应的无符号整数相加,以和作为hash值.任务4(可选):写一个子进程管理程序task54.c,借鉴SiR1.naSk.c方法管理子进程,父进程循环读取用户输入的操作命令,创建了进程、显示相关信息和终止了进程等。具体用户命令为:D命令1:功能是创建一批子进程,格式为“create<进程数>”,命令执行成功后,显示所有新创建子进程P1.D,比如“create10”表示创建10个子进程,子进程执行的代码可以为:“whi1.e(hexit(100);''2)命令2:终止批子进程,格式为“ki1.1.<P1><P2>”(如"ki1.1.123456789,为终止PID号为123、456、789的三个子进程),子进程显示“ki1.1.edbyparent”后终止,父进程通过SIGCH1.D信号处理程序等待子进程终止,显示终止的子进程PIDe3)命令3:显示当前子进程列表,命令格式为:''ps-u''4)命令4:父进程终止命令,格式为“exit”,当所有子进程都结束后,才允许执行该命令。提示:可用CgeIS函数将整个命令作为一行文本输入,再调用库函数(如S1.r1.Ok或S1.rehr)将各个命令参数提取出来。三、涉及实验的相关情况介绍(包含使用软件或实验设备等情况):安装1.inUX操作系统的计算机四、报告内容(给出每个任务的要求、设计思想'源代码,后接编译过程、测或数据与运行结果截图)五、实验分析和总结等实验名称1.inux多线程编程指导教师姓名学号班级实验地点实验日期同组同学教师评语实验成绩评阅教册一、实验目的:1 .通过编程训练,掌握多线程编程、线程间互斥/同步编程基本方法:2 .通过应用编程,掌握多线程并行程序设计与性能分析方法:3 .编写进程管理和线程管理函数测时程序,巩固测试函数应用编程,通过用时比较,建立进程和线程管理性能概念:4 .编写动态线程管理程序,建立负载均衡管理的初步概念,二、实验内容:先创建用户家目录下创建文件名为“姓名+学号+06”的子F1.录,作为本次实验目录,本次实的的所有代码都放到该目录卜。要求将所有源代码与数据文件打包成文件“学号姓名Jab6.targz,压缩包与实验报告分别上传到指定目录下。任务I(必做):编写程序1.ask61c,主线程创建3个对等线程T1.、T2,T3,每个线程利用循环执行5次printf输出操作,两次循环间随机等待1.-5s时间。主线程等待所有对等线程结束后终止进程。备对等线程的输出操作是: T1:输出“Mynameis您的姓名xxx>'' T2:输出“Mystudentnumberis您的学号xxx>" T3:输出“Cuenttime当前时间,包括年月日时分秒>要求:(1)采用文件笑制、文本第制或输入方式在1.inUX工作目录下创建源程序文件.(2)编译、调试、运行程序,观察输出结果任务2(必做):编译、测试和运行C1.inux编程3教材示例程序badcount.c,以不同的niters进行测试,使程序辘出错误结果,用Pthread信号量方法改写程序badcount.c,保存为task62.c,实现对共享变量的安全访问。要求:(1)用niters=1.夕进行测试,给出程序运行结果出错时最小n值,解释出错原因:(2)采用文件复制、文本组制或输入方式在1.inUX工作目录下创建源程序文件Iask62.C.(3)编译、调试、运行程序,观察输出结果任务3(必做):编写个多线程程序task63c,创建个生产者线程和,”个消费程线程,每个生产者线程产生若干个随机数,通过由N个单元构成的缓冲区,发送给消费者线程,进行输出显示,产生Pthread信号量实现生产者/消费者线程间同步,并且设汁一种方案对程序正确性进行验证。提示:-种非严逆的简单验证方案是,将生产者线程产生的所有随机数相加得到一个和,消费界线程接收到的所有随机数相加得到另一个和,验证两个和是否致来来验证程序正确性。任务4(必做):编译、测试和运行示例程序PSUm64.CI)测量线程数为1、2、4、8、16时程序的执行时间,计算加速比和效率,并做出解择。2)改写该程序PSUm64.a保存为task64.c,实现计算02+1.?+(n-1.-功能。要求:计兑不同线程数时的性能,填写以下表格,并对运行时间和加速比进行解择:线程I24816核(P)运行时间(TP)加速比(SP)效率(EP)任务5(选做):编写一个NXN矩阵乘法函数的并行线程化版本,程序保存为maunu1.tc,设计一种方案,验证并行程序正确性。编译、调试、运行程序,设21.iWN2k”给出线程数为I、2、42k2卜等情况卜的运行时间,计算加速比与效率,并对结果给出解糅。线程数124.212k核(P)运行时间(TP)加速比(SP)效率(EP)提示:可将输出结果与正确串行版本计算结果进行对比来脸证程序正确性任务6(任选):在1.inUX环境下,可以调用库函数gettimOday测量一个代码段的执行时间,精度可达微秒级,请写一个程序iask66.c,测量和比较fork、PthrCa(1.create函数调用所需的执行时间,并进行解解.提示:可以多次反复调用读写函数,计算累枳时间任务7(任选):编写一个多线程并发应用程序task67.c0功能特点包括:1)主线程预先创建5个工作线程,然后通过缓冲区发放任务,对等线程从缓冲区提取任务执行,当缓冲区为空时,等待任务。2)每个任务内容是以秒为单位的整数等待时间,对等线程取得任务后,调用SIeeP睡眠指定的秒数,就算任务执行完成。3)主线程从终端读取命令,发布任务,命令格式为"任务数秒数”,如输入“105”表示创建10个任务,每个任务的运行时间是5秒。4)应用程序应支持动态地增加或减少工作线程的数目,个策略是当缓冲区变满时,将线程数身翻倍,而当缓冲区变为空时,将线程数目减半。5)每次工作线程发送变动时,应输出相关信息,如:“缓冲区变满,工作线程数翻倍,当前工作线数为10个”“缓冲区变空,工作线程数减半,当前工作线程数为5个“提示:可以参照教材相关练习,创建一个封装r缓冲区、访问指针、信号量的结构体.如:typcdcfstruct(int*buf;色域冲区数姐队列一intn;/*嫌冲区仄列容量*/iniu1.pos;*ft据i出指什*/intinpos;/*收写入指针*/scm_tmutex;谆保护叶缓片区访问的互斥信号量*/scm_ts1.ots;/*空情(i计数信号受*/sem_titems:/*可用数据项计数信号量*7)SbUf_i:并用信号量加锁等方法编写四个线程安全函数SbufJnit,Sbu1.initxSbUjinSert、sbufremove,分别实现结构体进行初始化、结构体清理、任务插入、任务提取功能。三、涉及实验的相关情况介绍(包含使用软件或实验设备等情况):安装1.inUX操作系统的计算机四、报告内容(给出每个任务的要求、设计思想、源代码,后接编译过程、测忒数据、运行结果截图)五、实验分析与总结(任务2、3、4、5,6、7都要求进行分析,任务3与任务7应应有运行正确性验证方案和验证结果)实验名称1.inux进程间通信编程指导教师姓名学号班级实验地点实验日期同组同学教师评语实验成绩评阅教册一、实验目的:1 .编写通过管道通信的简单多进程程序,掌握管道编程基本方法:2 .编写通过消息队列通信的简单多进程程序,掌握利用消息队列通信的基本技巧:3 .编写通过共享内存通信的简单多进程程序,掌握通过共享内存通信和同步的编程方法:4 .通过综合练习,体会多进程并发服务器管理方法。二、实验内容:先创建用户家目录下创建文件名为“姓名+学号+07”的子目录,作为本次实验目录,本次实验的所有代码都放到该目录下。要求将所有源代码与数据文件打包成文件“学号-姓名-Iab7.iar.gz1.压缩包与实验报告分别上传到指定目录卜。任务1:编写程序IaSk71.c实现进程的管道通信.父进程创建两个子进程,父子进程通过管道来传送数据.两个子进程P1.和P2分别向管道各写一句话:Chi1.dP1.issendingMyname<您的姓名XXX>!Chi1.dP2issendingthecurrenttimeV当前系统时间,也括年月日时分秒>!父进程从管道中读出两个来自子进程的信息并显示。提示:获取系统时间的函数是“timeIimemmJ1.*();",将IimJ1.格式时间转换成字符串格式的函数是“char*ctimc(consttimet*timcp);0任务2:编写消息队列通信程序iask72sc和4c72c.c,利用消息队列通信实现一个简单的客户/服务器应用,多个客户进程task72c可并发地向服务器进程发送消息,服务器IaSk72s向每个客户发送消息接收回执。比如进程PID为1234的客户程发送的消息为Fe1.1.ofrOmPrOCeSSI234”,服务器收到该消息后发回消息为“receiptofhe1.1.ofrom您的姓名xxx>'sservertoProcess1234”任务3:编写程序IaSk73.C,父进程创建两个子进程P1.和P2,P1.通过共享内存符I、2、3、IO依次发送给进程P2输出显示,每次发送一个,父子进程间利用IPC信号量同步。任务4(可选):实现一个简单的多进程并发服务器,服务端为父进程U1.Sk74sc它从消息队列接收客户端进程IaSk7«.C连接请求,消息类型为1,请求命令串为"he1.1.ofemV客户端P1.D>”,服务端进程接收到请求命令串后,其处理过程为:1)创建两个管道文件”<客户端PID>server'和“<客户端P1.D>.c1.ien,分别用于服务端和客户端向对方发送消息:2)然以客户端进程PID为类型返回两个管道文件名“V客户端PIDNscrvcrV客户端PID>.c1.ienr;3)创建一个子进程处理,服务该客户进程:4)将“<子进程PID客户端PID”和管道文件名”V客户湍P1.DA.server“和"V客户端PID>.c1.ien保存到某个队列中。服务端子进程和客户端进程通过两个管道以文本行为单位传递信息,客户端进程向管道文件”<P1.D>c1.ient”写些文本行,服芬端子进程将其逐行读出,将所有小写字母改为大写,并在前面增加行号后,通过管道文件”V客户端P1.DA.server”发I可客户端进程输出显示。双方商定以文本行“quit”乍为通信结束标志,客户端进程发送该文本行后退出,服务器子进程接收到''quit”后也要终止。服务端父进程通过信号机制,处理子进程结束事宜,一是撤俏子进程,二是从相关队列中取出了进程相关信息,出除为相关客户端进程创建的两个管道文件。提示:一种运行服务器和多个客户端的简单方法是:$,/server&Sforiin12345doJc1.ient&done三、涉及实验的相关情况介绍(包含使用软件或实验设备等情况):安装1.inUX操作系统的计算机四、报告内容(给出每个任务的要求、设计思想、源代码,后接编译过程、测忒数据、运行结果截图)五、实验分析与总结等:实验名称1.inux网络通佶编程指导教师姓名学号班级实验地点实验日期同组同学教师评语实验成绩评阅教册一、实验目的:1 .通过运行、体脸和分析网络通信程序示例,体验网络通信特点和网络通信程序基本结构,掌握网络通信基本编程方法:2 .通过运行案例程序,体骐Web应用运行特征,理解HTTP事务,理解WEB服务器示例程序结构,理解踊态网页和动态网页功能的实现思想。3 .通过修改网络服务功能,加深对网络通信程序结构和网络编程的理解。二、实验内容:先创建用户家目录下创建文件名为“姓名+学号+08”的子H录,作为本次实验F1.录,本次实验的所有代码都放到该目录Eo要求将所有源代码与数据文件打包成文件“学号姓名ab8tar.gz'',压缩包与实验报告分别上传到指定目录下。任务1:编译、运行、测试示例程序togg1.e,编译客户端程序Iogg1.eac和服务器程序tog1.ei.c在一个窗口启动服务涔后,在另外两个窗口启动2个客户端,一个输入姓名、学号、当前日期三行信息,另客户端输入学校、专业和班级的英文名称。任务2:(1)编译、运行、测试WebIet服务涔,创建几个筒堆静态网页,用浏览涔进行浏览测氐;(2)用浏览器浏览动态网页adder。(3)用命令获取静态网页test,htm1.和adder结果来测试web1.et任务3:仿照togg1.esC和togg1.ec.c,编写一个网络通信程序,服务落端为task83s.c,客户端为task83cc,客户端将从服务器下载指定文件,要求通过命令行参数或标准确入绐出需下载的文件名.在标准输出显示文件内容.任务4:仿照togg1.esi.c和togg1.ec.c,编写一个远程she1.1程序,服务器端为task84s.c.客户端为task84c.c.客户端发送命令到服务器端执行,服务器端将执行结果返回远程客户端显示。晨涉及实验的相关情况介绍(包含使用软件或实验设备等情况):安装1.inUX操作系统的计兑机四、报告内容(给出每个任务的要求、设计思想、源代码,后接编译过程、测试数据、运行结果截图)五、实验分析、体会、总结等:实验名称并发网络应用编程指导教师姓名学号班级实验地点实验日期同组同学教师评语实验成绩评阅教册一、实验目的:1 .通过对示例程序代码分析和实验验证,理解多进程、多线程、预线程化网络服务器结构:2 .将web1.et改写为并发服务器,掌握并发服务器应用编写及一般方法。二、实验内容:先创建用户家目录卜创建文件名为“姓名+学号+09”的子目录,作为本次实验目录,本次实验的所有代码都放到该目录下。要求将所仃源代码与数据文件打包成文件“学号-姓名-Iab9.iar.gz",压缩包与实验报告分别上传到指定目录下.任务1:编译、运行、测试三个并发网络服务器togg1.esp、IoggIeSt和togg1.est_pre。任务2:实现一个基石进程的WCb1.et服务器的并发版本task92c,为每一个新的连接请求创建一个新的进程,先使用浏览耦和I命令来测试正确性,再编写一个能浏览网页的客户端程序进行测试。任务3:实现一个基于线程的WCb1.Ct服务器的并发版本task93.c,为每一个新的连接请求创建一个新的线程,使用浏览器和IeIne1.命令来测试正确性,再编写一个能浏览网页的客户端程序进行测试。任务4:实现一个web1.et服务湍的并发预线程化的版本task94.c,该服务器可根据负我情况,动态地增加或减少线程数目。一个策略是当缓冲区变满时,将线程数敢翻倍,而当缓冲区变为空时,将线程数目减半,编写能浏览网页的客户端测试进行测试。任务5(可选):实现一个Web代理task95.c(习题9.13)三、涉及实验的相关情况介绍(包含使用软件或实验设备等情况):安装1.inUX操作系统的计算:机四、报告内容(给出每个任务的要求、设计.思.想、源代码,后接编译过程、测试数据、运行结果截图)五、实验分析与总结等(任务2、任务3、任务4需进行实验分析表明服务涔确实在并发运行):

    注意事项

    本文(Linux编程实训手册.docx)为本站会员(李司机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开