用VC++5.0编写Ftp客户程序
2008-11-14 19:34:49 来源:WEB开发网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();
//建立一个SOCKET
If(!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;
}
如果选择了“匿名”登录,应用程序则自动将用户姓名和口令字填充为:anonymous,guest@unknown
更多精彩
赞助商链接