Linux下基于socket的文件传输程序设计课程设计报告

上传人:206****923 文档编号:41924238 上传时间:2018-05-31 格式:DOC 页数:27 大小:740.96KB
返回 下载 相关 举报
Linux下基于socket的文件传输程序设计课程设计报告_第1页
第1页 / 共27页
Linux下基于socket的文件传输程序设计课程设计报告_第2页
第2页 / 共27页
Linux下基于socket的文件传输程序设计课程设计报告_第3页
第3页 / 共27页
Linux下基于socket的文件传输程序设计课程设计报告_第4页
第4页 / 共27页
Linux下基于socket的文件传输程序设计课程设计报告_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《Linux下基于socket的文件传输程序设计课程设计报告》由会员分享,可在线阅读,更多相关《Linux下基于socket的文件传输程序设计课程设计报告(27页珍藏版)》请在金锄头文库上搜索。

1、重庆大学课程设计实验报告重庆大学课程设计报告重庆大学课程设计报告课程设计题目: Linux 下基于 socket 的文件传输程序设计 学 院: 计算机学院 专业班级: 网络工程一班 年 级: 2009 级 姓 名: 学 号: 完成时间: 2012 年 6 月 21 日成 绩: 指导教师: 重庆大学教务处制II课程设计指导教师评定成绩表优秀(100x90)良好(90x80)中等(80x70)及格(70x60)不及格(xd_name, “.“) = 0) | (strcmp(myitem-d_name, “.“) = 0) continue; strcpy(buf, myitem-d_name);

2、 send(connfd, buf, N, 0); closedir(mydir);return; C.下载文件:下载文件:void ProcessGet(int connfd, char buf) /client 下载函数,返回 client 请求的文件 int fd, nbyte;if (fd = open(buf+1, O_RDONLY) 0) send(connfd, buf, nbyte, 0); close(fd);77return; D.上传文件:上传文件:void ProcessPut(int connfd, char buf) /接收 client 上传的文件 int fd,

3、 nbyte;if (fd = open(buf+1, O_WRONLY|O_CREAT|O_TRUNC, 0666) 0) write(fd, buf, nbyte); close(fd);return; E.文件管理文件管理void rm_file( char command) /删除文件 char cmdline256;sprintf(cmdline, “rm -f %s“,command+3);system(cmdline);printf(“已删除%s“,command+3); void touch_file( char command) /创建文件 char cmdline256;s

4、printf(cmdline, “touch %s“,command+3);system(cmdline);printf(“已创建%s“,command+3); 88void move_file(char src_file,char des_file) /mv 函数的实现 char cmdline256;sprintf(cmdline,“mv %s %s “,src_file,des_file);system(cmdline); void copy_file(char src_file,char des_file) /文件拷贝 char cmdline256;sprintf(cmdline,“

5、cp %s %s “,src_file,des_file);system(cmdline); 2.2.客户端客户端A.A.打印列表:打印列表:void ProcessList(struct sockaddr_in server_addr) int sockfd, nbyte; char bufN;if (sockfd = socket(PF_INET, SOCK_STREAM, 0) 0)1010 write(fd, buf, nbyte); printf(“下载文件成功n“);close(fd);ERROR_2: close(sockfd);return; C.C.上传文件:上传文件:voi

6、d ProcessPut(struct sockaddr_in server_addr, char command) int sockfd, fd, nbyte; char bufN;if (sockfd = socket(PF_INET, SOCK_STREAM, 0) 0) send(sockfd, buf, nbyte, 0); 1111printf(“上传文件成功n“);close(fd);ERROR_3: close(sockfd);return; 第第 3 章章 调试分析与测试结果调试分析与测试结果3.1 服务器端服务器端3.1.1 服务器端初始状态:12123.1.2 对服务器端

7、进行文件管理:对服务器端进行文件管理:3.1.3 拷贝:拷贝:执行结果:将文件执行结果:将文件 b b 拷贝生成文件拷贝生成文件 c c13133.1.4 列出服务器端文件列表:列出服务器端文件列表: 14143.1.5 删除文件:删除文件:删除文件之后,再查看服务器端目录下文件列表:删除文件之后,再查看服务器端目录下文件列表:由上图可以发现由上图可以发现 2.txt2.txt 文件已经被删除。文件已经被删除。15153.1.6 创建文件:创建文件:由上图,先创建由上图,先创建 3.txt3.txt 的文件,再查看服务器端目录下文件列表,发现文件创的文件,再查看服务器端目录下文件列表,发现文件

8、创 建成功。建成功。3.1.7 重命名文件:重命名文件:将文件将文件 3.txt3.txt 重命名为重命名为 2.txt:2.txt:1616再查看文件列表:再查看文件列表:由上图发现,由上图发现,3.txt3.txt 已更名为已更名为 2.txt2.txt。3.1.8 移动文件:移动文件:运行成功后,查看目标目录,发现运行成功后,查看目标目录,发现 2.txt2.txt 已经成功移动到目标目录。已经成功移动到目标目录。17173.1.9 退出文件管理并监听客户端:退出文件管理并监听客户端:18183.2 客户端客户端3.2.1 查看客户端文件列表:查看客户端文件列表:3.2.2 查看服务器端

9、文件列表:查看服务器端文件列表:19193.2.3 从服务器端下载文件到客户端:从服务器端下载文件到客户端:下载成功之后,查看客户端文件目录,发现下载成功之后,查看客户端文件目录,发现 Linux.pdfLinux.pdf 出现在客户端文件目录出现在客户端文件目录 中。中。3.2.4 从客户端上传文件到服务器端:从客户端上传文件到服务器端:上传成功之后,查看客户端文件目录,发现上传成功之后,查看客户端文件目录,发现 5.txt5.txt 出现在服务器端文件目录中。出现在服务器端文件目录中。20203.2.5 更改文件目录:更改文件目录:移动移动 5.txt5.txt 文件后,查看客户端文件列表

10、,发现其已不在列表中,再查看移动文件后,查看客户端文件列表,发现其已不在列表中,再查看移动 的目标目录:的目标目录:发现文件已在相应文件夹中。发现文件已在相应文件夹中。2121第第 4 章章 设计总结设计总结这次课程设计可谓收获颇大,首先从一开始对 Linux 编程只有肤浅的认识,到做完实验后有了一定程度的了解,并能够进行简单的程序设计和编写。如果没有这次实验,我想我很难有机会去接触从而进一步熟悉 Linux 这个操作系统以及在 Linux 下的编程。通过实验我认识到了系统调用的实现原理,系统信息和状态的读取,让我从中学到了不少 Linux 的知识。在实验的过程中,我们特别是对 Linux 下

11、通过 Socket 来实现文件传输有了更深的认识,我想这是我们这次课程设计中最大的收获。服务器的工作流程是这样的:首先调用 socket 函数创建一个 Socket,然后调用 bind 函数将其与本机地址以及一个本地端口号绑定,然后调用 listen 在相应的 socket 上监听,当 accpet 接收到一个连接服务请求时,将生成一个新的 socket。服务器显示该客户机的 IP 地址,并通过 新的 socket 向客户端发送字符串。最后关闭该socket。在关于调用多线程实现服务器端同时与多个客户端进行操作也让我们有了更多更加深入的体会。代码实例中的 fork()函数生成一个子进程来处理数

12、据传输部分,fork()语句对于子进程返回的值为 0。所以包含 fork 函数的 if 语句是子进程代码部分,它与 if 语句后面的父进程代码部分是并发执行的。实验过程中遇到了不少问题,主要是对 Linux 下的编程环境不熟悉,一开始对于编译命令就相当的反感:怎么这么长的命令对于终端的使用也是很不满意,觉得编起来很不方便,当然我不会轻易放弃,还是自己不断的查询教程,不断的百度,慢慢一步步还是把一个个问题给突破了。坚持就是胜利,我始终相信。2222第第 5 章章 参考文献参考文献1.深入理解 Linux 内核 陈莉君等译 中国电力出版社 2001.102. Linux 内核设计与实现 陈莉君等译 机械工业出版社 2003.113. Linux 内核源代码情景分析 毛德操,胡希明 浙江大学出版社 2001.94.TCP/IP 网络原理与技术 周明天、汪文勇 清华大学出版社:1993

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号