-
大小: 89KB文件類型: .rar金幣: 2下載: 0 次發(fā)布日期: 2021-05-18
- 語言: 其他
- 標(biāo)簽:
資源簡介
c的ftp斷點(diǎn)續(xù)傳的客戶端源代碼
VC中利用FTP協(xié)議實(shí)現(xiàn)多線程斷點(diǎn)續(xù)傳(附源碼)

代碼片段和文件信息
//---------------------------------------------------------------------------
#include?sepch.h>
#pragma?hdrstop
#include?“MultiFtp.h“
#pragma?package(smart_init)
//---------------------------------------------------------------------------
//?ValidCtrCheck?is?used?to?assure?that?the?components?created?do?not?have
//?any?pure?virtual?functions.
//
static?inline?void?ValidCtrCheck(TMultiFtp?*)
{
????????new?TMultiFtp(NULL);
}
//---------------------------------------------------------------------------
__fastcall?TMultiFtp::TMultiFtp(TComponent*?Owner)
????????:?TComponent(Owner)
{
???lock?=?false;
???isUseFile?=?false;
???runningThreadCnt?=?0;
???stop?=?false;
???this->Owner??=?Owner;
}
__fastcall?TMultiFtp::~TMultiFtp()
{
????fclose(this->globalFile);
????if(this->inforImpl.fromToImpl)
??????delete[]?this->inforImpl.fromToImpl;
}
//---------------------------------------------------------------------------
namespace?Multiftp
{
????????void?__fastcall?PACKAGE?Register()
????????{
?????????????????TComponentClass?classes[1]?=?{__classid(TMultiFtp)};
?????????????????RegisterComponents(“System“?classes?0);
????????}
}
//---------------------------------------------------------------------------
void?__fastcall?TMultiFtp::FreeMemory()
{
????if(this->globalFile)
???????fclose(this->globalFile);
????if(this->inforImpl.fromToImpl)
??????delete[]?this->inforImpl.fromToImpl;
}
SOCKET?__fastcall?TMultiFtp::ConnectFtp(String?host?int?port?String?userName?String??pass)
{
????this->DoOnTextOut(“歡迎使用funinhand多線程,斷點(diǎn)續(xù)傳軟件!!“);
????MultiThreadDealSocket?*dealSocket?=?new?MultiThreadDealSocket();
????SOCKET?client?=?dealSocket->GetConnect(hostport);
????char?*?buffer?=?new?char[100];
????int?recLen?;
????recLen?=?recv(clientbuffer1000);
????buffer[recLen]=0;
????if(client?==?NULL)
????{
??????this->DoOnException(“連接ftp服務(wù)器失敗!“);
??????delete[]?buffer;
??????return?NULL;
????}
????this->DoOnTextOut(“連接ftp服務(wù)器成功!“);
????String?user?=?“USER??“+userName+“?\r\n“;
????this->DoOnTextOut(user);
????send(clientuser.c_str()user.Length()0);
????recLen?=?recv(clientbuffer1000);
????buffer[recLen]=0;
????if(GetCode(buffer)?==?“331“)
????{
???????this->DoOnTextOut(“服務(wù)器要求驗(yàn)證密碼。“);
???????String?password?=?“PASS?“+pass+“?\r\n“;
???????this->DoOnTextOut(password);
???????send(clientpassword.c_str()password.Length()0);
???????recLen?=?recv(clientbuffer1000);
????????buffer[recLen]=0;
???????int?tryTimes?=?3;
???????while(GetCode(buffer)?!=?“230“?&&?tryTimes?>?0)
???????{
??????????send(clientpassword.c_str()password.Length()0);
??????????recLen?=?recv(clientbuffer1000);
???????????buffer[recLen]=0;
??????????tryTimes?--;
??????????this->DoOnTextOut(“第“+IntToStr(3-tryTimes)+“嘗試“);
???????}
???????if(tryTimes?0)
???????{
???????????this->DoOnException(userName?+“登錄失敗!“);
???????????delete[]?buffer;
???????????return?NULL;
???????}
???????else
??????????this->
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄??????????0??2005-01-21?14:09??project
?????文件?????114150??2005-01-12?14:58??project\MultiThreadDealScoket.obj
?????文件??????22093??2005-01-14?20:00??project\MultiFtp.~cpp
?????文件???????4585??2005-01-14?14:45??project\MultiFtp.~h
?????文件??????22242??2005-01-14?20:02??project\MultiFtp.cpp
?????文件???????4585??2005-01-14?14:45??project\MultiFtp.h
?????文件??????85777??2005-01-14?20:02??project\MultiFtp.obj
?????文件???????7513??2005-01-14?19:32??project\MultiFtpDownloadThread.~cpp
?????文件???????2203??2005-01-13?17:19??project\MultiFtpDownloadThread.~h
?????文件???????7518??2005-01-14?19:34??project\MultiFtpDownloadThread.cpp
?????文件???????2203??2005-01-13?17:19??project\MultiFtpDownloadThread.h
?????文件??????45660??2005-01-14?19:34??project\MultiFtpDownloadThread.obj
?????文件????????332??2005-01-12?11:08??project\MultiThreadDataClass.~cpp
?????文件????????424??2005-01-12?11:54??project\MultiThreadDataClass.~h
?????文件????????332??2005-01-12?11:08??project\MultiThreadDataClass.cpp
?????文件????????666??2005-01-13?10:53??project\MultiThreadDataClass.h
?????文件??????12606??2005-01-13?10:53??project\MultiThreadDataClass.obj
?????文件???????1467??2005-01-12?10:32??project\MultiThreadDealScoket.~cpp
?????文件????????443??2005-01-12?10:33??project\MultiThreadDealScoket.~h
?????文件???????2528??2005-01-12?10:35??project\MultiThreadDealScoket.cpp
?????文件????????532??2005-01-12?10:34??project\MultiThreadDealScoket.h
????I.A....???????124??2006-05-28?09:29??readme.txt
-----------?---------??----------?-----??----
???????????????337983????????????????????22
評(píng)論
共有 條評(píng)論