Chinaunix首页 | 论坛 | 博客
  • 博客访问: 14497254
  • 博文数量: 5645
  • 博客积分: 9880
  • 博客等级: 中将
  • 技术积分: 68081
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-28 13:35
文章分类

全部博文(5645)

文章存档

2008年(5645)

我的朋友

分类:

2008-04-28 20:53:55

下载本文示例代码
  随着Internet的迅猛发展,网络软件的开发与设计显得越来越重要。最初的网络软件主要是以UNIX操作系统为软件开发环境的,随着Windows个人操作系统的流行,传统的编程界面向这一新的软硬件平台转换变得极为迫切。VC 5.0版的MFC封装了的CSocket类提供了高级的SOCKET支持,为编写因特网环境下基于Windows平台的C/S程序提供了极大的方便。本文通过利用CSocket类编写一个FTP客户程序为例介绍了其使用方法,向你揭开网络编程的秘密。  WINSOCK以动态链接库的形式向程序员提供了一个功能强大的函数集,通过对这个函数集的调用,应用程序可以完成其特定的任务。然而缺点是程序较为繁琐。为了解决这一问题,Microsoft对其推出的Visual C 系列的基本类库(MFC)做了逐步的完善。尤其是新近发行的VC 5.0版,封装了许多与网络程序设计相关的类。CSocket就是其中之一。  CSocket类(父类为CAsyncSocket)提供了一个高级的SOCKET支持,完成对低层函数的操作,大大降低了编程难度。这里,以Windows 95为开发环境,采用Visual C 5.0编写一个Ftp客户程序,来说明如何深入有效地利用CSocket类进行网络软件的开发。考虑到C/S模式下应建立一个Ftp服务器的问题,所以选择Windows 95的4.00.950B版,因为这个版本含有个人Web服务器,提供了HTTP及FTP服务。  首先,建立一个SDI(单文档界面)应用程序的基本框架。这一步比较简单,在VC 5.0中,MFC AppWizard通过创建一个新的项目(Project)而被激活,选择File菜单中的New选项,选取Project,输入文件名为SuperFTP,选择OK。随后的步骤为VC 自动创建过程,可以参见相关资料,不再详述。最后生成以下几个主要类:CMainFrame,CSuperFTPApp,CSuperFTPDoc,CSuperFTPView,CAboutDlg。  其次,建立几个新类,如下表:  有关Ftp协议请参考相关资料,这是正确开发Ftp客户程序的重要前提。  第三步,具体程序的编制。由于整个程序比较长,下面给出主要部分的核心代码并附注释。 1.MainFrm.cpp:……CMainFrame::CMainFrame(){//初始化指针m_ctrlconn=NULL;m_dataconn=NULL;m_recvconn=NULL;}//选择菜单项“快速连接”void CMainFrame::OnQuickconnect(){if(!Makeconn())MessageBox(“FTP控制链路建立失败!”,“提示”,MB_ICONWARNING);if(!MakeRemoteDir())MessageBox(“FTP数据链路建立失败!”,“提示”,MB_ICONWARNING);}//建立控制链路BOOL CMainFrame::Makeconn(){……Quickconn dlg;//输入服务器名,用户名,口令if (dlg.DoModal()==IDOK){fservername=dlg.m_servername;fusername=dlg.m_username;fpassword=dlg.m_password;}m_ctrlconn=new ctrlsocket();//建立一个SOCKETIf(!m_ctrlconn->Create(0,SOCK_STREAM,NULL){delete m_ctrlconn;m_ctrlconn=NULL;MessageBox(“Socket()建立失败!”,“提示”,MB_ICONWARNING);return FALSE;}//申请网络事件通知If(!m_ctrlconn->AsyncSelect(FD_READ|FD_WRITE|FD_ACCEPT|FD_CONNECT|FD_CLOSE)){MessageBox(“AsyncSelect()错误!”,“提示”,MB_ICNWARNING);return FALSE;}BeginWaitCursor();//向由fservername指定的主机发出连接请求if(!m_ctrlconn->Connect(fservername,IPPORT_FTP)){delete m_ctrlconn;m_ctrlconn=NULL;MessageBox(远端服务器连接失败!”,“提示”,MB_ICONWARNING);return FALSE;}EndWaitCursor();……return TRUE;}共2页。 1 2 :   随着Internet的迅猛发展,网络软件的开发与设计显得越来越重要。最初的网络软件主要是以UNIX操作系统为软件开发环境的,随着Windows个人操作系统的流行,传统的编程界面向这一新的软硬件平台转换变得极为迫切。VC 5.0版的MFC封装了的CSocket类提供了高级的SOCKET支持,为编写因特网环境下基于Windows平台的C/S程序提供了极大的方便。本文通过利用CSocket类编写一个FTP客户程序为例介绍了其使用方法,向你揭开网络编程的秘密。  WINSOCK以动态链接库的形式向程序员提供了一个功能强大的函数集,通过对这个函数集的调用,应用程序可以完成其特定的任务。然而缺点是程序较为繁琐。为了解决这一问题,Microsoft对其推出的Visual C 系列的基本类库(MFC)做了逐步的完善。尤其是新近发行的VC 5.0版,封装了许多与网络程序设计相关的类。CSocket就是其中之一。  CSocket类(父类为CAsyncSocket)提供了一个高级的SOCKET支持,完成对低层函数的操作,大大降低了编程难度。这里,以Windows 95为开发环境,采用Visual C 5.0编写一个Ftp客户程序,来说明如何深入有效地利用CSocket类进行网络软件的开发。考虑到C/S模式下应建立一个Ftp服务器的问题,所以选择Windows 95的4.00.950B版,因为这个版本含有个人Web服务器,提供了HTTP及FTP服务。  首先,建立一个SDI(单文档界面)应用程序的基本框架。这一步比较简单,在VC 5.0中,MFC AppWizard通过创建一个新的项目(Project)而被激活,选择File菜单中的New选项,选取Project,输入文件名为SuperFTP,选择OK。随后的步骤为VC 自动创建过程,可以参见相关资料,不再详述。最后生成以下几个主要类:CMainFrame,CSuperFTPApp,CSuperFTPDoc,CSuperFTPView,CAboutDlg。  其次,建立几个新类,如下表:  有关Ftp协议请参考相关资料,这是正确开发Ftp客户程序的重要前提。  第三步,具体程序的编制。由于整个程序比较长,下面给出主要部分的核心代码并附注释。 1.MainFrm.cpp:……CMainFrame::CMainFrame(){//初始化指针m_ctrlconn=NULL;m_dataconn=NULL;m_recvconn=NULL;}//选择菜单项“快速连接”void CMainFrame::OnQuickconnect(){if(!Makeconn())MessageBox(“FTP控制链路建立失败!”,“提示”,MB_ICONWARNING);if(!MakeRemoteDir())MessageBox(“FTP数据链路建立失败!”,“提示”,MB_ICONWARNING);}//建立控制链路BOOL CMainFrame::Makeconn(){……Quickconn dlg;//输入服务器名,用户名,口令if (dlg.DoModal()==IDOK){fservername=dlg.m_servername;fusername=dlg.m_username;fpassword=dlg.m_password;}m_ctrlconn=new ctrlsocket();//建立一个SOCKETIf(!m_ctrlconn->Create(0,SOCK_STREAM,NULL){delete m_ctrlconn;m_ctrlconn=NULL;MessageBox(“Socket()建立失败!”,“提示”,MB_ICONWARNING);return FALSE;}//申请网络事件通知If(!m_ctrlconn->AsyncSelect(FD_READ|FD_WRITE|FD_ACCEPT|FD_CONNECT|FD_CLOSE)){MessageBox(“AsyncSelect()错误!”,“提示”,MB_ICNWARNING);return FALSE;}BeginWaitCursor();//向由fservername指定的主机发出连接请求if(!m_ctrlconn->Connect(fservername,IPPORT_FTP)){delete m_ctrlconn;m_ctrlconn=NULL;MessageBox(远端服务器连接失败!”,“提示”,MB_ICONWARNING);return FALSE;}EndWaitCursor();……return TRUE;}共2页。 1 2 : 下载本文示例代码


用VC 5.0编写Ftp客户程序用VC 5.0编写Ftp客户程序用VC 5.0编写Ftp客户程序用VC 5.0编写Ftp客户程序用VC 5.0编写Ftp客户程序用VC 5.0编写Ftp客户程序用VC 5.0编写Ftp客户程序用VC 5.0编写Ftp客户程序用VC 5.0编写Ftp客户程序用VC 5.0编写Ftp客户程序用VC 5.0编写Ftp客户程序用VC 5.0编写Ftp客户程序用VC 5.0编写Ftp客户程序用VC 5.0编写Ftp客户程序用VC 5.0编写Ftp客户程序
阅读(203) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~