欢迎来到天天文库
浏览记录
ID:46222188
大小:97.93 KB
页数:24页
时间:2019-11-21
《软件技术专业毕业实习报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、《软件实习》专业班级学号姓名指导老师厦门软件学院[实习目的]熟练掌握一门工具,对B/S,C/S框架有一定了解,在此基础上编写一些基本的服务程序。[实习内容]我们这次做的是一个FTP客户端程序。采用的是B/S框架模式。可以通过客户端从服务器下载数据,或向服务器传送数据。[FTP思想概述]FTP是通过两个连接实现的。有一个连接总是保持的,即控制连接,通过这个连接,客户端向服务器发送命令并从服务器取得对命令的应答,通过应答,客户端可以知道命令最后执行的结果如何。另一个是数据连接,数据连接只有在服务器与客户端有数据连接的时候才建立服务器上文件目录信息,上传下载文件都是通过这个数据连接进程的
2、。另外,数据传输使用的是反向连接,即客户端穿件数据连接套接字的服务器端,然后向服务器端发送PORT命令,让FTP服务器来反向连接客户端。[主要类框架]FtpclientDlg为这个客户端的主耍框架类,里面包含了5个类。LCFtpClicntDlg:publicCDialog为这个客户端的对话框类。2,CControlSock:publicCAsyncSocket控制连接,用于服务器与客户端的命令及应答传输。成员变量:m_SendBuffer,m_Receive:存放命令的序列,连接到一个链表。*m_dlg:主对话框指针,用于显示对话框屮的数据Sendcmd:向服务器发送命令重载了O
3、nRecive,OnSend两个函数2,CListcnSock:publicCAsynSockct监听连接,将数据传输情况下监听服务器连接请求。主耍重载OnAccept函数3,CDataSock:publicCAsynSockct数据连接,用于显示服务器目录信息及文件数据传输。成员变量:mReceiveBuffer:存放命令的序列,连接到一个链表。*m_dlg:主对话框指针,用于显示对话框中的数据*m_pF订e:文件指针,上传下载文件时打开本地文件用于读写。4,CFtp封装Ftp基本操作。USER:用户名PASS:密码CWD:改变文件冃录TYPE:文件类型CDUP:向上层冃录LIS
4、T:目录下的文件列表RETR:下载服务器上指定目录的而文件STOR:向服务器上传文件成员函数:ConncctScrvcr:用于连接到一个指定的FTP服务器Put:上传文件至服务器Get:从服务器上下载指定文件到本地ChangeDirDown:进入服务器上一子目录ChangeDirUp:进入服务器上的上一层目录6.CFtpClientDlg屮的一些消息和应函数OnClickListl:“服务器文件目录列表”列表框的单击事件相应函数OnDbclkListl:“服务器文件目录列表”列表框的双击事件相应函数OnConnect:按钮“连接”的单击时间响应函数OnDisconnect:按钮"断
5、开”的单击吋间响应函数OnDirup:按钮“上层父目录”的单击吋间响应函数OnDirdown:按钮“进入子目录”的单击时间响应函数OnGet:按钮“下载本文件”的单击时间响应函数OnPut:按钮“上传文件”的单击时间响应函数[主要代码]#include"stdafx.h"★include"FtpClient.h"^include"FtpClientDlg.h"#ifdef.DEBUG#definenewDEBUG_NEWttundefTHIS_FILEstaticcharTHIS_FILE[]=_FILE_;#endif//CAboutDlgdialogusedforAppAbou
6、t/////////globalvar/////////////////////inttransfortype;CDataSock*m_dataSock=NULL;classCAboutDlg:publicCDialogpublic:CAboutDlg();//DialogData//{{AFX_DATA(CAboutDlg)enum{IDD=IDD_AB0UTB0X};//}}AFX_DATA//ClassWizardgeneratedvirtualfunctionoverrides//{{AFX.VIRTUAL(CAboutDlg)protected:virtualvoidDo
7、DataExchange(CDataExchange*pDX);//DDX/DDVsupport〃}}AFX_VIRTUAL//Implementationprotected://{{AFX_MSG(CAboutDlg)//}}AFX_MSGDECLARE_MESSAGE_MAP()};CAboutDig::CAboutDlg():CDialog(CAboutDlg::IDD){//{{AFX_DATA_INIT(CAboutDlg)//}}AFX_DATA_INIT
此文档下载收益归作者所有