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

    《操作系统原理》实验9--Linux多线程文件传输实现.docx

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

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

    《操作系统原理》实验9--Linux多线程文件传输实现.docx

    操作系统原理实验报告实验序号:9实验项目:LinUX多线程文件传输实现学号姓名专业、班级实验地点指导教师实验时间一、实验目的及要求通过本实验的综合实践,使学生掌握LinUX多线程、SOCkel编程和文件系统操作等多项知识。二、实验设备(环境)及要求VMware虚拟机软件,Ubuntu系统三、实验内容与步骤包括服务器和客户端两部分。1服务器端创建监听与文件管理服务器负责的功能模块主要有两部分,一是对连接进来客户端所有线程的管理和服务器目录下的文件管理;二是创建线程来单独监听客户端的动作。为了便于管理,创建两个user.txt和client.txt两个文档来分别负责服务器的连接和客户端的连接。USer.lxt中存放了服务器名和密码。Client.txt存放了连接客户端名字和密码。首先对服务器的创建有个监测,即在启动时先核实服务器的所有者username和密码PaSSWord,将输入的用户、密码与user.txt中的用户密码比较,匹配成功则同意启动,否则return-1表失败。接着创建一个SOCket套接口,绑定IP设置客户端的最大连接数为10,然后创建一个SeVer线程来实现对服务器本身监听动作。接下来创建线程完成对客户端的监听监听等待连接:while(l)sockdata=accept(sockfd,(structsockaddr*)0,(int*)0);我们定义结构体:structclient_t(pthread_ttid;intconn_fd;intused;charname20;p_client10;来存放每个客户端的SoCket信息、线程标识、使用号、连接号和客户名。创建线程实现单独监听:p_clientfi.conn_fd=sockdata;p_clienti.used=i;strcpy(p_clienti.name,client_name);pthread_create(&p_clienti.tid,NULL,&client_conn,&p_clienti)接下来是线程Cliem_conn()的功能监听客户端的功能完成。2客户端连接与文件传输在客户端这边同样适用了检测机制,运行客户机时要将用户名、密码以及ip地址和端口号作为参数输进来,先建立与服务器的连接,然后将用户名和密码发送到服务端检测,如果检测失败则接收到一条拒绝信息,连接断开,如果检测成功则接收到一条确认信息,双方通信开始。3实现步骤基于多线程的TCP套接字文件传输通信工作流程图,如图1所示。通信工作的大致流程:1) 服务器先用SoCket()函数来建立一个套接口,用这个套接口完成通信的监听及数据的收发。2) 服务器用bind()函数来绑定一个端口号和ip地址,是套接口与指定的端口号和ip关联。3) 服务器调用IiSten()函数,是服务器的端口和IP处于监听状态,等待网络中某一个客户机的连接请求。4) 客户机用SoCket()函数建立一个套接口,设定远程ip和端口5) 客户机调用ConneCto函数连接远程计算机指定的端口。6) 服务器调用accept。函数来接受远程计算机的连接请求,建立起与客户机之间的通信连接。7) 建立连接之后,客户机用Write()函数(或Send()想socket中写入数据。也可以用read。函数(或recv()函数)赌气服务器发送来的数据。8) 服务器用read。函数(或recv()函数)来读取客户机发来的数据,也可以用Write()函数(或Send()函数)来发送数据。9) 完成通信以后,使用ClOSe()函数关闭socket连接。客户机进程服务器进程图1TCP套接字通信工作实验步骤与结果:0ubuntu:/test_Ex/ex9/client$./client192.168.111.15*I-UpFile 2-DownFtle 3-FtIeLtst 4-Discoect* ase Input the Id: ubuntu:/test_Ex/ex9/server$ ./server ver: got connection from 192.168.111.15以上两图是客户端和服务器建立连接后,双方的状态。0ubuntu:/test_Ex/ex9/cltent$ ./client 192.168.111.15 *I-UpFtle 2-DownFfle 3-FileList 4-Dtsconect*ase Input the Id: eKist:Io. c t2.hex5.cex4.cshare.c ex6 3.shubuntu:*/test_Ex/ex9/server$ ./server er: got connection from 192.168.ill.15 nt 192.168.111.15 : Request for FileList.以上两图是客户端要求显示文件列表的操作。*I-UpFtle 2-DownFtle 3-FUeLtst 4-Disconnect*PleaseInputtheId:2pleaseinputFtleNamethatyouwanttodownload:ex4.c12410241241ubuntu:/test_Ex/ex9/server$./serverer:gotconnectionfrom192.168.111.15et192.168.111.15:RequestforFileList.Ilelistex4.c444ex4.cExex9clientOclientfindHncltineIlinclIcliet.c以上三张图是客户端请求下载服务器上的文件的操作,数字代表传输的数据量的直接大小。不过有bug,就是文件是存在了,但是文件内容却是空的。服务器传输过来的字节没有写入在客户端生成的文件中,一直在查找这个bug的问题。咆UbUntU:八esJExex9cltent5./client192.168.111.15*I-UpFlle* 2-DowFxT© *3.FtXeList* 4-dXscoct*?aseInputtheId:4»dByte!IbUnt一testExex9cIient$ubuntu:/test_Ex/ex9/server$./serverer:gotconnectionfrom192.168.111.15?nt192.168.111.15:RequestforFileList.Ilelistex4.c14er: got connection ?nt 192.168.111.15from 192.168.111.15 :is disconnect.以上两张图是客户端,服务器断开连接后的状态。四、分析与讨论这是本学期比较大型的实验,涉及到了个功能的实际应用,特别是通信方面的,还应该继续深入研究。五、教师评语签名:口期:成绩

    注意事项

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

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开