linux网络编程课程设计.doc

linux网络编程课程设计.doc

ID:51961732

大小:383.14 KB

页数:13页

时间:2020-03-20

linux网络编程课程设计.doc_第1页
linux网络编程课程设计.doc_第2页
linux网络编程课程设计.doc_第3页
linux网络编程课程设计.doc_第4页
linux网络编程课程设计.doc_第5页
资源描述:

《linux网络编程课程设计.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、安徽工业大学计算机科学与技术学院《Linux网络编程》课程设计班级:姓名:指导老师:安徽工业大学计算机科学与技术学院一、设计背景 Linux 操作系统作为一个开源的操作系统被越来越多的人所应用,它的好处在于操作系统源代码的公开化!只要是基于GNU公约的软件你都可以任意使用并修改它的源代码。通过这次课程设计能更好的学习网络编程知识和掌握LINUX平台上应用程序设计开发的过程,将大学四年所学知识综合运用,为未来的工作学习打下基础。二、设计目的1、学习epoll跟FTP被动模式2、掌握linux基本命令,例如ls、cd、login;3、学

2、会如何编译、运行三、环境要求1、centos64位操作系统2、gcc编译器四、设计原理4.1客户端客户端程序的主要任务有以下3个:(1)、分析用户输入的命令。(2)、根据命令向服务器发出请求(3)、接受服务器返回请求的结果客户端为用户提供了3种命令:(1)、get:从服务器下载文件(2)、list:列出客户端当前目录的内容(3)、quit离开4.2服务器端(1)、分析请求代码。(2)、根据请求代码做相应的处理(3)、等待返回结果或者应答信息安徽工业大学计算机科学与技术学院五、软件测试结果安徽工业大学计算机科学与技术学院安徽工业大学计

3、算机科学与技术学院六、部分主代码#include"ftserve.h"intmain(intargc,char*argv[]){intsock_listen,sock_control,port,pid;if(argc!=2){printf("usage:./ftserveport");exit(0);}port=atoi(argv[1]);//createsocketif((sock_listen=socket_create(port))<0){perror("Errorcreatingsocket");exit(1);}whi

4、le(1){//waitforclientrequest安徽工业大学计算机科学与技术学院//createnewsocketforcontrolconnectionif((sock_control=socket_accept(sock_listen))<0)break;//createchildprocesstodoactualfiletransferif((pid=fork())<0){perror("Errorforkingchildprocess");}elseif(pid==0){close(sock_listen);ftse

5、rve_process(sock_control);close(sock_control);exit(0);}close(sock_control);}close(sock_listen);return0;}/***Sendfilespecifiedinfilenameoverdataconnection,sending*controlmessageovercontrolconnection*Handlescaseofnullorinvalidfilename*/voidftserve_retr(intsock_control,in

6、tsock_data,char*filename){FILE*fd=NULL;chardata[MAXSIZE];size_tnum_read;fd=fopen(filename,"r");if(!fd){//senderrorcode(550Requestedactionnottaken)send_response(sock_control,550);}else{//sendokay(150Filestatusokay)安徽工业大学计算机科学与技术学院send_response(sock_control,150);do{num_r

7、ead=fread(data,1,MAXSIZE,fd);if(num_read<0){printf("errorinfread()");}//sendblockif(send(sock_data,data,num_read,0)<0)perror("errorsendingfile");}while(num_read>0);//sendmessage:226:closingconn,filetransfersuccessfulsend_response(sock_control,226);fclose(fd);}}/***

8、Sendlistoffilesincurrentdirectory*overdataconnection*Return-1onerror,0onsuccess*/intftserve_list(intsock_data,intsock

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

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

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