资源简介

用MFC实现的FTP断点上传与下载的程序,可以正常运行,无论是学习还是拿到项目中使用都很好!

资源截图

代码片段和文件信息

//---------------------------------------------------------------------------

#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多线程,断点续传软件!!“);
    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服务器失败!“);
      delete[] buffer;
      return NULL;
    }
    this->DoOnTextOut(“连接ftp服务器成功!“);
    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(“服务器要求验证密码。“);
       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->

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      22242  2005-01-14 20:02  ftp协议实现多线程断点续传\200641016517684\ftp协议实现多线程断点续传\project\MultiFtp.cpp

     文件       4585  2005-01-14 14:45  ftp协议实现多线程断点续传\200641016517684\ftp协议实现多线程断点续传\project\MultiFtp.h

     文件      85777  2005-01-14 20:02  ftp协议实现多线程断点续传\200641016517684\ftp协议实现多线程断点续传\project\MultiFtp.obj

     文件      22093  2005-01-14 20:00  ftp协议实现多线程断点续传\200641016517684\ftp协议实现多线程断点续传\project\MultiFtp.~cpp

     文件       4585  2005-01-14 14:45  ftp协议实现多线程断点续传\200641016517684\ftp协议实现多线程断点续传\project\MultiFtp.~h

     文件       7518  2005-01-14 19:34  ftp协议实现多线程断点续传\200641016517684\ftp协议实现多线程断点续传\project\MultiFtpDownloadThread.cpp

     文件       2203  2005-01-13 17:19  ftp协议实现多线程断点续传\200641016517684\ftp协议实现多线程断点续传\project\MultiFtpDownloadThread.h

     文件      45660  2005-01-14 19:34  ftp协议实现多线程断点续传\200641016517684\ftp协议实现多线程断点续传\project\MultiFtpDownloadThread.obj

     文件       7513  2005-01-14 19:32  ftp协议实现多线程断点续传\200641016517684\ftp协议实现多线程断点续传\project\MultiFtpDownloadThread.~cpp

     文件       2203  2005-01-13 17:19  ftp协议实现多线程断点续传\200641016517684\ftp协议实现多线程断点续传\project\MultiFtpDownloadThread.~h

     文件        332  2005-01-12 11:08  ftp协议实现多线程断点续传\200641016517684\ftp协议实现多线程断点续传\project\MultiThreadDataClass.cpp

     文件        666  2005-01-13 10:53  ftp协议实现多线程断点续传\200641016517684\ftp协议实现多线程断点续传\project\MultiThreadDataClass.h

     文件      12606  2005-01-13 10:53  ftp协议实现多线程断点续传\200641016517684\ftp协议实现多线程断点续传\project\MultiThreadDataClass.obj

     文件        332  2005-01-12 11:08  ftp协议实现多线程断点续传\200641016517684\ftp协议实现多线程断点续传\project\MultiThreadDataClass.~cpp

     文件        424  2005-01-12 11:54  ftp协议实现多线程断点续传\200641016517684\ftp协议实现多线程断点续传\project\MultiThreadDataClass.~h

     文件       2528  2005-01-12 10:35  ftp协议实现多线程断点续传\200641016517684\ftp协议实现多线程断点续传\project\MultiThreadDealScoket.cpp

     文件        532  2005-01-12 10:34  ftp协议实现多线程断点续传\200641016517684\ftp协议实现多线程断点续传\project\MultiThreadDealScoket.h

     文件     114150  2005-01-12 14:58  ftp协议实现多线程断点续传\200641016517684\ftp协议实现多线程断点续传\project\MultiThreadDealScoket.obj

     文件       1467  2005-01-12 10:32  ftp协议实现多线程断点续传\200641016517684\ftp协议实现多线程断点续传\project\MultiThreadDealScoket.~cpp

     文件        443  2005-01-12 10:33  ftp协议实现多线程断点续传\200641016517684\ftp协议实现多线程断点续传\project\MultiThreadDealScoket.~h

     文件        155  2007-08-20 23:31  ftp协议实现多线程断点续传\200641016517684\ftp协议实现多线程断点续传\project\龙腾教程网--软件教程 电脑教程 设计教程.url

     目录          0  2006-04-10 16:42  ftp协议实现多线程断点续传\200641016517684\ftp协议实现多线程断点续传\project

     文件        155  2007-08-20 23:31  ftp协议实现多线程断点续传\200641016517684\ftp协议实现多线程断点续传\龙腾教程网--软件教程 电脑教程 设计教程.url

     目录          0  2006-04-10 16:42  ftp协议实现多线程断点续传\200641016517684\ftp协议实现多线程断点续传

     文件        155  2007-08-20 23:31  ftp协议实现多线程断点续传\200641016517684\龙腾教程网--软件教程 电脑教程 设计教程.url

     目录          0  2006-04-25 22:04  ftp协议实现多线程断点续传\200641016517684

     目录          0  2007-09-05 23:32  ftp协议实现多线程断点续传

----------- ---------  ---------- -----  ----

               338324                    27



............此处省略0个文件信息

评论

共有 条评论