基本信息
源码名称:c++ ftp 例子源码下载
源码大小:0.01M
文件格式:.rar
开发语言:C/C++
更新时间:2015-03-05
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 1 元 
   源码介绍
FTP(File Transfer Protocol)协议主要用来在网络上进行文件传输。FTP通讯除了有一个默认的端口21外,还有其他端口,同城两个端口同时进行数据传输。一个是默认的端口(通常为21),主要进行控制连接,即进行命令协议及服务器端响应码的传输。另一个非标准端口主要进行数据,上传下载文件等。


// FtpThread.cpp : implementation file
//

#include "stdafx.h"
#include "ftptest.h"
#include "FtpThread.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CFtpThread

IMPLEMENT_DYNCREATE(CFtpThread, CWinThread)

CFtpThread::CFtpThread()
{
}

CFtpThread::~CFtpThread()
{
}

BOOL CFtpThread::InitInstance()
{
	// TODO:  perform and per-thread initialization here
	return TRUE;
}

int CFtpThread::ExitInstance()
{
	// TODO:  perform any per-thread cleanup here
	return CWinThread::ExitInstance();
}

UINT CFtpThread::PutFile(LPVOID lpStatus)
{
	BOOL bSuccess = FALSE;
	int *pnFileStatus;
	CInternetSession *pInetsession;
	CFtpConnection   *pFtpConnection = NULL;
	pnFileStatus  = (int *)lpStatus;
	*pnFileStatus = 0;
	pInetsession  = new CInternetSession(AfxGetAppName(),1,PRE_CONFIG_INTERNET_ACCESS);

	try
	{
		pFtpConnection = pInetsession->GetFtpConnection("192.0.5.227","anonymous");
		TRACE("start建立");
	}
	catch (CInternetException *pEx)
	{
		TRACE("error建立");
		pEx->Delete();
		pFtpConnection = NULL;
		*pnFileStatus = 1;
		goto BallOut;
	}

	*pnFileStatus = 1;
//	pFtpConnection->Remove("test.txt");
/*	if (!pFtpConnection->PutFile(_T("C:\\Documents and Settings\\zhangrl\\桌面\\test.txt"),_T("\\share\\ftproot\\test222.txt")))
	{
		*pnFileStatus = 2;
	}
	else
	{
		*pnFileStatus = 2;
	}*/
	bSuccess = pFtpConnection->GetFile(_T("刘德华-情义俩心坚MTV.WMV"),_T("C:\\Documents and Settings\\zhangrl\\桌面\\刘德华-情义俩心坚MTV.WMV"));
	if (!bSuccess)
	{
		TRACE("failed");
		*pnFileStatus = 2;
	}
	else
	{
		*pnFileStatus = 2;
	}

BallOut:
	if (pFtpConnection != NULL)
	{
		pFtpConnection->Close();
		delete pFtpConnection;
	}
	delete pInetsession;
	AfxEndThread(0);

	return FALSE;
}

BEGIN_MESSAGE_MAP(CFtpThread, CWinThread)
	//{{AFX_MSG_MAP(CFtpThread)
		// NOTE - the ClassWizard will add and remove mapping macros here.
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CFtpThread message handlers