下载此beplayapp体育下载

操作系统课程设计说明书--基于Linux的小型远程FTP服务系统的设计.doc


beplayapp体育下载分类:bepaly下载苹果 | 页数:约8页 举报非法beplayapp体育下载有奖
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该beplayapp体育下载所得收入归上传者、原创者。
  • 3.下载的beplayapp体育下载,不会出现我们的网址水印。
1 / 8 下载此beplayapp体育下载
beplayapp体育下载列表 beplayapp体育下载介绍
该【操作系统课程设计说明书--基于Linux的小型远程FTP服务系统的设计 】是由【zl201163zl】上传分享,beplayapp体育下载一共【8】页,该beplayapp体育下载可以免费在线阅读,需要了解更多关于【操作系统课程设计说明书--基于Linux的小型远程FTP服务系统的设计 】的内容,可以使用beplayapp体育下载的站内搜索功能,选择自己适合的beplayapp体育下载,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此beplayapp体育下载到您的设备,方便您编辑和打印。操作系统课程设计说明书?学院、系:软件学院专业:软件工程设计题目:基于Linux的小型远程FTP服务系统的设计需求分析设计目的:ftp远程服务是操作系统的重要功能之一。用高级语言编写和调试一个简单的FTP服务系统,掌握对进程、线程、进程互斥、同步、通信、文件系统及网络编程的方法。从而加深对远程服务机制的理解和认识。,删除,切换,查看当前目录下的文件。客户可以上传和下载目录到指定的文件夹。服务端的要求验证用户的登录信息。支持多线程的使用。记录活动客户数,客户在线数目加1,:网络的Socket数据传输是一种特殊的I/O,Socket也是一种文件描述符。其具有一个类似于打开文件的函数调用socket(),返回一个整形的Socket描述符,随后的连接建立,数据传输等操作都是通过该Socket实现的。常用的Socket类型有两种:流式Socket和数据报式Socket。流式是一种面向连接的Socket,针对于面向连接的TCP服务应用;数据报式Socket是一种无连接的Socket,对应于无连接的UDP服务应用。本系统使用前者。在使用socket进行网络传输之前,必须配置该socket。Bind函数将socket与本机上的一个端口相关联,随后就可以在该端口发起向服务端的请求和监听服务请求。面向连接的socket客户端通过调用Connect函数在socket数据结构中保存远端信息并与远端服务器建立一个TCP连接。只有面向连接的客户程序使用socket是才需要将此socket与远端主机相连。面向连接的服务器从不启动一个连接,它只是被动的在协议端口监听客户的请求。Listen函数使socket处于被动的监听模式,并为该socket建立一个输入数据队列,将到达的服务请求保存在此队列中,直到程序处理它们。Accept()函数让服务器接受客户的连接请求,ept()函数监视的socket收到连接请求时,socket执行体将建立一个新的socket,执行体将这个新socket和请求连接进程的地址联系起来,收到服务请求的初始socket仍可以继续在以前的socket上监听。系统中的fork()函数生成一个子进程来处理数据传输部分,fork()函数对于子进程返回的值为0,所以包含fork函数的if语句是子进程代码部分,它与if语句后面的父进程代码部分并发执行。 客户端发送操作命令和服务端接受命令执行相应的操作:send()和recv()函数用于面向连接的socket上进行数据传输。Send()函数返回实际上发送出去的字节数,可能会少于你希望发送的数据。在程序中应将send()的返回值与欲发送的字节数进行比较。当send()返回值与len不匹配时,应该对这种情况进行处理。Recv()函数返回实际上接受的字节数。接受到客户端的命令后,确定要执行的那个命令,进入相应的子模块,完成相应的操作。客户端总体流程验证密码验证失败退出验证成功服务器端客户端流程客户端创建目录用户验证文件操作删除目录查看目录指令指令指令rmdirls- 本系统的开发过程中,我做的是处理客户端发来的请求并调用系统函数执行相应的操作这一模块。服务端接受并处理cd,ls,quit,mkdir,rmdir,upload,download这样几种类型的客户端发来的命令。Cd工作路径:修改当前工作路径;ls工作路径:列出工作路径下的内容列表;quit:客户端退出系统;mkdir目录名称:在当前的工作路径下建立一个由参数确定的目录;rmdir目录名称:在当前工作路径下删除给定名称的目录;upload:将客户程序所在文件夹下的要求上传的文件上传到要求上传到的服务器端的那一文件夹下;download:将操作的当前工作路径下的指定的某一文件下载到客户程序所在的文件夹中。使用while循环不断接受客户发来的命令请求,并在客户端发来quit命令后,跳出循环,调用close()函数来释放该通讯的socket,从而停止在该socket上的任何数据操作。相应的源码:intmain(){ /*intargc,char**argvif(argc!=2){printf("Usage:./%sServerIPAddress\n",argv[0]);exit(1);}*/char*argv="";//设置一个socket地址结构client_addr,地址,端口structsockaddr_inclient_addr;bzero(&client_addr,sizeof(client_addr));//=;//=htons(INADDR_ANY);//=htons(0);//0表示让系统自动分配一个空闲端口//的流协议(TCP)socket,用client_socket代表客户机socketintclient_socket=socket(,SOCK_STREAM,0);if(client_socket<0){printf("CreateSocketFailed!\n");exit(1);}//把客户机的socket和客户机的socket地址结构联系起来if(bind(client_socket,(structsockaddr*)&client_addr,sizeof(client_addr))){printf("ClientBindPortFailed!\n");exit(1);}//设置一个socket地址结构server_addr,地址,端口structsockaddr_inserver_addr;bzero(&server_addr,sizeof(server_addr));=;if(inet_aton(argv,&)==0)//服务器的IP地址来自程序的参数{printf("ServerIPAddressError!\n");exit(1);}=htons(HELLO_WORLD_SERVER_PORT);socklen_tserver_addr_length=sizeof(server_addr);//向服务器发起连接,连接成功后client_socket代表了客户机和服务器的一个socket连接if(connect(client_socket,(structsockaddr*)&server_addr,server_addr_length)<0){printf("CanNotConnectTo%s!\n",argv);exit(1);}charbuffer[BUFFER_SIZE];bzero(buffer,BUFFER_SIZE);//接受连接成功信息read(client_socket,buffer,BUFFER_SIZE);printf("ThismessagefromServer:%s\n",buffer);bzero(buffer,BUFFER_SIZE); //输入帐号和密码,中间以空格隔开printf("请输入登录帐号和密码,中间以空格分开:");//scanf("%s",buffer);不能用scanf因为scanf函数空格也getstr(buffer);printf("-----%s",buffer);//向服务端发送登录信息后,清空bufferwrite(client_socket,buffer,sizeof(buffer));bzero(buffer,BUFFER_SIZE);//取得服务端发来的是否登录成功的信息read(client_socket,buffer,BUFFER_SIZE);//判断是否登录成功 if(strcmp(buffer,"错误")==0){ printf("帐号密码有误\n"); close(client_socket); return-1;}else{ printf("%s\n",buffer);} 通过本次课程设计,熟悉了Linux操作系统,学会了在Linux操作系统下使用其强大的编辑器开发、编译、运行C语言程序。本系统主要涉及网络编程和I/O操作,通过查阅资料和与指导老师的沟通熟悉了Linux下基于socket面向连接的流式的网络编程所用到的数据结构与建立连接的一般方法,学会了系统函数诸如mkdir(),rmdir(),chdir(),getcwd()等目录、文件操作的函数的使用方法。由于时间仓促,此系统在统计在线客户数,子进程与父进程的交换等方面做的不是很完善,验收后还要好好阅读一下关于进程管理方面的编程技巧,继续完善此系统。在此多谢老师细心的教导!

操作系统课程设计说明书--基于Linux的小型远程FTP服务系统的设计 来自beplayapp体育下载www.apt-nc.com转载请标明出处.

相关beplayapp体育下载 更多>>
非法内容举报中心
beplayapp体育下载信息
  • 页数8
  • 收藏数0收藏
  • 顶次数0
  • 上传人zl201163zl
  • 文件大小54 KB
  • 时间2023-12-14