linux网络编程课程设计

linux网络编程课程设计

ID:14876844

大小:383.13 KB

页数:13页

时间:2018-07-30

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

《linux网络编程课程设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

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);}while(1){//waitforclient

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

5、ose(sock_control);exit(0);}close(sock_control);}close(sock_listen);return0;}/***Sendfilespecifiedinfilenameoverdataconnection,sending*controlmessageovercontrolconnection*Handlescaseofnullorinvalidfilename*/voidftserve_retr(intsock_control,intsock_data,char*filename){FILE*fd=N

6、ULL;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_read=fread(data,1,MAXSIZE,fd);if(num_read<0

7、){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);}}/***Sendlistoffilesincurrentdirectory*overdataconnect

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

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

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

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