ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:104.95KB ,
资源ID:102538      下载积分:15 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/102538.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(linux下基于Socket的文件传输程序课程设计.docx)为本站会员(wj)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

linux下基于Socket的文件传输程序课程设计.docx

1、课程设计题目Linux 下基于 Socket 的文件传输程序设计学院计算机学院专业计算机科学与技术年级2009 级已知参数和设计要求:要求:1、系统分为客户端和服务器端,客服端可以实现文件的上传、下载以及查看服务器 下默认目录的文件列表;服务器端可以对文件进行管理,包括上传,下载,删除文件,重命名等;2、在内核中添加一个自己的内存分配和释放的系统调用(可以调用malloc()和 free()等内存管理函数实现),并在程序中调用;3、支持多个客户端同时对服务器中的文件进行操作(多线程);加分项:1、实现了用户的权限管理;2、内存分配和释放用内存池实现;3、程序功能比较完善,如可以变更文件目录等;

2、学生应完成的工作:设计并实现。目前资料收集情况(含指定参考资料):Linux 内核设计与实现(第三版)课程设计的工作计划:任务下达日期 2012 年7 月 2 日完成日期2012 年7 月 5 日需求分析1.1 系统目的Linux 作为一个先进的操作系统,其发展越来越快,应用领域也越来越广泛。在学习了linux 内核设计与实现之后,亲自设计并实现 linux 下的编程,不仅有助于巩固学过的知识,更能扩宽自己的视野,增强动手实践能力。1.2 课程要求Linux 下基于 Socket 的文件传输程序设计,包括对文件进行管理,包括上传,下载,删除文件,重命名,支持多线程等。1.3 开发工具与开发平台

3、开发工具:C 语言开发平台:Linux 2 系统设计2.1 系统功能此软件的主要功能有:1. 实现在 linux 环境下的基于 socket 文件传输;2. 对 linux 环境下的文件进行简单管理。其中客户端与服务器的所要完成的具体功能如下: 客户端:(1) 连接服务器,并发送指令给服务器;(2) 接收并识别服务器发来的信息;(3) 通过不同指令实现文件的查看,下载,和上传。服务器:(1) 能查看本地的文件,并进行简单的管理,如删除,重命名等(2) 接收来自客户端的连接请求,并赋予客户端不同的操作权限;(3) 识别客户端的发来的指令,实现与客户端间的文件下载和上传。2.2 系统结构软件由服务

4、器端和客户端两部分组成,服务器端监听客户对某个特定端口的网络连接请求,并与之建立连接,这样,这个客户的数据就可以发送到服务器。客户端的任务是将用户的指令发送给服务器,且客户端可以有多个。客户端运行时将立即向服务器的某个端口发送连接请求,待连接建立后则由用户的发送线程发送该用户的指令到服务器。服务器端的主线程负责监听某个端口,接收用户的发送线程发出的指令。在客户端,用户接收线程接收服务器发送的数据,由用户端主线程进行处理后显示。2.3 客户端指令查看服务器下指定路径下的所有文件: look_up;下载服务器下指定路径下的指定文件:download filename; 上传客户端下指定路径下的指定

5、文件:senddatafilename; 退出连接: end ;2.4 服务器指令运行服务器后,系统提示指令查看所有文件请输入 1 ; 重命名文件请输入 2 ; 删除文件请输入 3; 开启服务监听模式 4;2.5 数据流设计3 测试结果服务器进行文件管理的操作服务器监听多个客户端并相应其指令客户端 0 连接服务器客户端 1 连接服务器4 总结这次课程设计是 linux 下的 socket 通信,以 c 为编程语言,并实现了文件管理与多线程开发。通过此次课程设计,进一步熟悉了linux 操作系统的使用,掌握了linux 下socket 通信的基本配置,加深了对所学知识的理解,更扩宽了自己的视野,

6、增强动了手实践能力。5 参考资料Linux 内核设计与实现第三版Robert Love 著6 附录代码主要服务器代码:void *get_client(void *sockfd)char bufBUFFER_SIZE; memset(buf,0,sizeof(buf);int read_size;/time_t timep;int limit;printf(有客户端接入! 请输入要授予 client %d 的权限n,maxi); printf(1 为 仅能查看服务器下的文件名n);printf(2 为 能查看服务器下的文件名与下载文件n);printf(3 为 能查看服务器下的文件名,上传文件

7、,下载文件n); scanf(%d,&limit);if(limit=1)strcpy(buf,1); else if(limit=2)strcpy(buf,2); else if(limit=3)strcpy(buf,3);elseprintf(输入错误,结束程序!);exit(0);send(int)sockfd,buf,strlen(buf)+1,0);/ 客户端权限控制domemset(buf,0,sizeof(buf); / 数组清零if(read_size=recv(int)sockfd,buf,BUFFER_SIZE, 0)=-1) perror(recv error.); ex

8、it(1);/接收数据if(!strcmp(buf, end)puts(客户端退出); break;else if(!strcmp(buf, look_up) memset(buf,0,sizeof(buf); dir =opendir(test_path);while(ptr = readdir(dir)!=NULL)if(strcmp(ptr-d_name, .)&strcmp(ptr-d_name, .)/ printf(d_name: %s%cn,ptr-d_name,ptr-d_type);/ 打印文件名,文件类型存入 buf 发送strcat(buf,ptr-d_name);str

9、cat(buf,);/文件名,文件类型closedir(dir); send(int)sockfd,buf,strlen(buf)+1,0);/ 相应客户端查看文件操作else if(!strncmp(download,buf,8)char test50;char test250;mid(test,buf,strlen(buf)-9,9);strcpy(test2,test_path);strcat(test2,test); from_fd = open(test2, O_RDONLY);/打开要发送的文件if(from_fdd_name, .)&strcmp(ptr-d_name, .) printf(d_name: %s%cn,ptr-d_name,ptr-d_type);/ 打印文件名,文件类型模式 4n);closedir(dir);puts(查看文件 1 ; 重命名文件 2 ;删除文件 3 ;开始进入服务else if(op=2)/ 重命名puts(输入要重命名的文件,以及更改后到名字:);charname_from20;charname_to20;char name_from_path50;char name_to_path50;scanf(%s,name_from); scanf(%s,n

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1