登录FTP之C++实现

今天起来发现没事做,于是就试着搞搞ftp文件上传下载吧。。下面是艰难的开始,只实现了个ftp服务器连接,估计这个功能我要明天开始做了。真是郁闷。。。我打算采用实用WinInet API的方式来实现这个功能。至于Winsock的方式以后有时间再搞搞吧。

代码:

CInternetSession *m_pInetsession;
CFtpConnection *m_pFtpConnection;
m_pInetsession=new CInternetSession(AfxGetAppName(),1,PRE_CONFIG_INTERNET_ACCESS);
try
{
     m_pFtpConnection=m_pInetsession->GetFtpConnection("127.0.0.1",NULL,NULL,38);
     MessageBox("连接成功");
}
catch(CInternetException *pEx)
{
	TCHAR szError[1024];
	if(pEx->GetErrorMessage(szError,1024))
		AfxMessageBox(szError);
	else
		AfxMessageBox("There was an exception");
	pEx->Delete();
	m_pFtpConnection=NULL;
	return;
}

 

代码就是这么简单,但是因为是从0开始接触,至于ftp服务器啊什么的全不懂,所以花了我将近2个小时的时间才把这个程序正确运行成功。主要是卡在ftp服务器上了。。下面我主要解释一下ftp服务器相关的设置。


ftp服务器设置

就是在这个问题上纠结了很长的时间。这里我们通过IIS来创建ftp站点。
首先要安装IIS:
同时要选中Internet信息服务--FTP服务器。。像这样:
然后在管理工具中可以看到Internet信息服务(IIS)管理器,双击,(或是通过计算机--管理打开 也是一样的)。
最后通过IIS来创建FTP站点。。本来这是个非常简单的问题,但是我也纠结了半天,智商啊。。。。
添加FTP站点---然后是一系列的设置。这些设置就不多说了,很简单吧。。让我们先来测试一下是否能访问到这个FTP站点吧。
在地址栏输入:ftp:127.0.0.1:38(如果你设置了自己的端口号38,而不是默认的21,就需要加上这个端口号在后面),真是不给面子,TMD要我输入身份认证,我很是无语,于是在IIS管理器中各种找啊,哪里可以设置这种认证的,看到用户名和密码,我就看到亲人了,可惜我没有找到,主要是在这里花了很多时间。最后还是向网上的大神们求救了。需要这样设置:
1.FTP身份验证,启用匿名身份验证
2.FTP SSL设置,SSL策略设置为允许SSL连接
3.FTP 授权规则->添加允许规则->所有匿名用户->读取、写入
这样你就可以看到你的FTP站点的目录了,如:

这样你的ftp服务器啊什么全部都完成了,你也可以访问了,在你的程序中,就会弹出你很想看到的“连接成功”了。。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值