用VC++实现FTP的实验

来源:互联网 发布:黄金现货行情软件 编辑:程序博客网 时间:2024/06/10 07:32
在VC++的编程中,我们经常要用到一些INTERNET上面的的一些功能,比如FTP、WWW等功能。在我多年的编程过程中,总经了一些小经验,写出来与大家共享,请大家指教。我这个小程序用VC++很方便地实现了FTP功能的传送文件的功能,这只是个小的测试程序,通过这个程序还可以扩展许多功能,比如实现FTP功能中的下载文件的功能等。拨号上网后运行这个小程序,既可实现该功能。

在VC++中创建一个基于对话框的应用程序,需要注意的是在创建此工程时,一定要选择Windows Sockets这一选项。创建的对话框的结构如上图,并在对话框类的文件中加入#include 'afxinet.h' 头文件。然后在对话框这个类的文件中加入下列函数,此函数是敲击Send-Button按钮发生的事件,主要是完成FTP功能传送文件的功能,本程序中要传的文件应该放在本工程中,如果放在别处可稍加改动一下即可。


void CFtptestDlg::OnSendButton()
{
CString host;
m_HostEdit.GetWindowText(host);
//m_HostEdit是对话框中FTP Host :Edit控件的命名
CString user;

m_UserEdit.GetWindowText(user);
//m_UserEdit是对话框中User:Edit控件的命名
CString password;
m_PasswordEdit.GetWindowText(password);
//m_PasswordEdit是对话框中Password:Edit控件的命名
CString filename;
m_FileEdit.GetWindowText(filename);
//m_FileEdit是对话中SendFile:Edit控件的命名
TRACE(':%s:%s:%s:%s/n', host,
user, password, filename);
CInternetSession session
(AfxGetApp()- >m_pszAppName);
CFtpConnection* pConn = NULL;
pConn = session.GetFtpConnection
(host,user,password);
if (pConn) {
if (!pConn- >PutFile(filename,filename)){
MessageBox('传送文件失败??');
} else {
MessageBox('传送文件成功!');
}
pConn- >Close();
delete pConn;
session.Close();
} else {
MessageBox('Cannot Connect');
}
}

这个应用程序使用中文95操作系统,在VC++5.0上开发、编译、运行通过。