linux下基于socket的文件传输程序课程设计

linux下基于socket的文件传输程序课程设计

ID:11539137

大小:21.20 KB

页数:14页

时间:2018-07-12

linux下基于socket的文件传输程序课程设计_第1页
linux下基于socket的文件传输程序课程设计_第2页
linux下基于socket的文件传输程序课程设计_第3页
linux下基于socket的文件传输程序课程设计_第4页
linux下基于socket的文件传输程序课程设计_第5页
资源描述:

《linux下基于socket的文件传输程序课程设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、linux下基于Socket的文件传输程序课程设计1需求分析1.1系统目的Linux作为一个先进的操作系统,其发展越来越快,应用领域也越来越广泛。在学习了《linux内核设计与实现》之后,亲自设计并实现linux下的编程,不仅有助于巩固学过的知识,更能扩宽自己的视野,增强动手实践能力。1.2课程要求Linux下基于Socket的文件传输程序设计,包括对文件进行管理,包括上传,下载,删除文件,重命名,支持多线程等。1.3开发工具与开发平台开发工具:C语言开发平台:Linux2系统设计2.1系统功能此软件的主要功能有:1.2.实现在linux环境下

2、的基于socket文件传输;对linux环境下的文件进行简单管理。其中客户端与服务器的所要完成的具体功能如下:客户端:(1)连接服务器,并发送指令给服务器;(2)接收并识别服务器发来的信息;(3)通过不同指令实现文件的查看,下载,和上传。服务器:(1)能查看本地的文件,并进行简单的管理,如删除,重命名等(2)接收来自客户端的连接请求,并赋予客户端不同的操作权限;(3)识别客户端的发来的指令,实现与客户端间的文件下载和上传。2.2系统结构软件由服务器端和客户端两部分组成,服务器端监听客户对某个特定端口的网络连接请求,并与之建立连接,这样,这个客户

3、的数据就可以发送到服务器。客户端的任务是将用户的指令发送给服务器,且客户端可以有多个。客户端运行时将立即向服务器的某个端口发送连接请求,待连接建立后则由用户的发送线程发送该用户的指令到服务器。服务器端的主线程负责监听某个端口,接收用户的发送线程发出的指令。在客户端,用户接收线程接收服务器发送的数据,由用户端主线程进行处理后显示。2.3客户端指令查看服务器下指定路径下的所有文件:look_up;下载服务器下指定路径下的指定文件:downloadfilename;上传客户端下指定路径下的指定文件:senddatafilename;退出连接:end;

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

5、obertLove著6附录代码主要服务器代码:void*get_client(void*sockfd){charbuf[BUFFER_SIZE];memset(buf,0,sizeof(buf));intread_size;//time_ttimep;intlimit;printf("有客户端接入!请输入要授予client%d的权限",maxi);printf("1为仅能查看服务器下的文件名");printf("2为能查看服务器下的文件名与下载文件");printf("3为能查看服务器下的文件名,上传文件,下载文件");scan

6、f("%d",&limit);if(limit==1){strcpy(buf,"1");}elseif(limit==2){strcpy(buf,"2");}elseif(limit==3){strcpy(buf,"3");}else{printf("输入错误,结束程序!");exit(0);}send((int)sockfd,buf,strlen(buf)+1,0);//客户端权限控制do{memset(buf,0,sizeof(buf));//数组清零if((read_size=recv((int)sockfd,buf,BUFFER

7、_SIZE,0))==-1){perror("recverror.");exit(1);}//接收数据if(!strcmp(buf,"end")){puts("客户端退出");break;}elseif(!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,"..")){/

8、/printf("d_name:%s%c",ptr->d_name,ptr->d_type);//打印文件名,文件类型strcat(b

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。