《操作系统原理》实验9--Linux多线程文件传输实现.docx
《《操作系统原理》实验9--Linux多线程文件传输实现.docx》由会员分享,可在线阅读,更多相关《《操作系统原理》实验9--Linux多线程文件传输实现.docx(6页珍藏版)》请在优知文库上搜索。
1、操作系统原理实验报告实验序号:9实验项目:LinUX多线程文件传输实现学号姓名专业、班级实验地点指导教师实验时间一、实验目的及要求通过本实验的综合实践,使学生掌握LinUX多线程、SOCkel编程和文件系统操作等多项知识。二、实验设备(环境)及要求VMware虚拟机软件,Ubuntu系统三、实验内容与步骤包括服务器和客户端两部分。1服务器端创建监听与文件管理服务器负责的功能模块主要有两部分,一是对连接进来客户端所有线程的管理和服务器目录下的文件管理;二是创建线程来单独监听客户端的动作。为了便于管理,创建两个user.txt和client.txt两个文档来分别负责服务器的连接和客户端的连接。US
2、er.lxt中存放了服务器名和密码。Client.txt存放了连接客户端名字和密码。首先对服务器的创建有个监测,即在启动时先核实服务器的所有者username和密码PaSSWord,将输入的用户、密码与user.txt中的用户密码比较,匹配成功则同意启动,否则return-1表失败。接着创建一个SOCket套接口,绑定IP设置客户端的最大连接数为10,然后创建一个SeVer线程来实现对服务器本身监听动作。接下来创建线程完成对客户端的监听监听等待连接:while(l)sockdata=accept(sockfd,(structsockaddr*)0,(int*)0);我们定义结构体:struct
3、client_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客户端连接与文件传输在客户端这边同样适
4、用了检测机制,运行客户机时要将用户名、密码以及ip地址和端口号作为参数输进来,先建立与服务器的连接,然后将用户名和密码发送到服务端检测,如果检测失败则接收到一条拒绝信息,连接断开,如果检测成功则接收到一条确认信息,双方通信开始。3实现步骤基于多线程的TCP套接字文件传输通信工作流程图,如图1所示。通信工作的大致流程:1) 服务器先用SoCket()函数来建立一个套接口,用这个套接口完成通信的监听及数据的收发。2) 服务器用bind()函数来绑定一个端口号和ip地址,是套接口与指定的端口号和ip关联。3) 服务器调用IiSten()函数,是服务器的端口和IP处于监听状态,等待网络中某一个客户机的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统原理 操作系统 原理 实验 Linux 多线程 文件传输 实现