登录
首页 » VC++源码 » VC++ FTP、HTTP 多线程断点续传下载文件

VC++ FTP、HTTP 多线程断点续传下载文件

于 2022-03-19 发布 文件大小:67.76 kB
0 125
下载积分: 2 下载次数: 1

代码说明:

VC++ FTP、HTTP 多线程断点续传下载文件,在断点下载时,可获取远程站点信息,如:是否支持断点续传、要下载的文件大小和创建时间等。可设置下载的线程数、下载任务的线程函数、多线程断点续传下载一个文件、关于BOOL bForceDownload/*=FALSE*/的定义,如果为 TRUE 表示强制性重新下载,以下载的部分将会被删除,FALSE 表示断点续传,并创建多线程下载使用的对象和数据缓冲、删除多线程下载使用的对象和数据缓冲。   启动多线程下载,返回 0 表示失败,1表示成功,2表示不用下载了,因为该文件已经下载过了   智能判断要保存的文件是否已经存在,且大小和创建时间一致,如果不是强制性下载,则不需要再下载了。

下载说明:请别用迅雷下载,失败请重下,重下不扣分!

发表评论

0 个回复

  • VC6.0 使用信号量Semaphore实现线程的同步
    VC6.0 使用信号量Semaphore实现线程的同步,使用信号量实现线程同步,设置访问保护对象的最多线程数为2,确定当前已经启动运行的线程数目,可以创建线程。   CWinThread* pThread=AfxBeginThread(ThreadProc,&m_Edit);//开辟一个工作线程,   int thread=0;//全局变量记录当前运行线程的数目   CSemaphore mySemaphore(2,2);//创建CSemaphore类对象   UINT ThreadProc(LPVOID pParam)//工作线程入口函数   {    CEdit *pedit=(CEdit*)pParam;    CString str;    thread++;//线程数目加1    str.Format("%d",thread);    pedit->SetWindowText(str);//编辑框显示    CSingleLock singlelock(&mySemaphore);//创建CSingleLock类对象    singlelock.Lock();//计数器初始值减1    MessageBox(NULL,"信号量控制访问资源线程数","提示",MB_ICONWARNING);//弹出对话框    thread--;//线程数目减1    str.Format("%d",thread);    pedit->SetWindowText(str);//编辑框显示    return 0;   }
    2022-02-20 19:37:49下载
    积分:1
  • VC++ 6.0 定时执行任务(关机、重启等)编写实例
    VC++ 6.0 定时执行任务编写实例,程序运行时显示托盘图标和右键菜单,请设置好时间和需要执行的外部文件路径及文件名,默认情况下是执行外部任务,可选择执行关机、重启、注销等任务,然后启动定时程序,在仅剩1分钟时,程序会显示自动重启警告:计算机将于1分钟内重启,是否取消重启?按"是"则取消自动重启.若允许自动关闭,请保存尚未关闭的程序!"。   本定时程序时间的设置可精确到日期、时间、秒,编写步骤:   ①设置任务执行的日期时间.   ②选择关机,注销,重启,任务模式.   ③选择了任务模式,需要设置任务路径.   ④按下"启动定时"按钮.   ⑤关机前1分钟不段提示是否关机或重启,如果用户一直未取消,电脑将于1分钟内关机或重启.有如下代码可参考:   if(shutTime < CTime::GetCurrentTime())   {    MessageBox("设置的时间不能早于当前系统时间!");   }   else   {    CString bb;    cButton->GetWindowText(bb);    if(bb == "启动定时")    {    if(radio == 1)    {    MessageBox("定时关机已启动!","定时关机已启动");    }    else if(radio == 2)    {    MessageBox("定时注销已启动!","定时注销已启动");    }    else if(radio == 3)    {    MessageBox("定时重启已启动!","定时重启已启动");    }else if(radio == 4)    {    CString command = "";    GetDlgItemText(IDC_EDIT2,command);    if(command == "")    {    MessageBox("请选择要执行的文件!");    return ;    }else    {    MessageBox("定时任务已启动!","定时任务已启动");    }    }    SetTimer(1,1000,0);    AfxGetApp()->m_pM
    2022-10-17 12:35:03下载
    积分:1
  • VC++使用标签控件创建TAB标签页
    VC++使用标签控件创建标签页,向大家展示VC++中基本标签控件的使用方法。如效果图所示的标签窗口,一共是创建了两个标签,单击后可切换对应的内容,在WEB开发中,这种TAB功能也有很普遍的应用。你可参考如下对TAB标签的定义:   TC_ITEM tcItem;//标签结构   tcItem.mask=TCIF_TEXT;   tcItem.pszText="标签1";   m_ctlTab.InsertItem(0,&tcItem);//添加Tab标签页   tcItem.pszText="标签2";   m_ctlTab.InsertItem(1,&tcItem);//添加Tab标签页   m_ctlTab.SetCurSel(0);//设置Tab标签1为选中状态   GetDlgItem(IDC_STATIC1)->ShowWindow(TRUE);   GetDlgItem(IDC_STATIC2)->ShowWindow(SW_HIDE);//隐藏静态控件2   GetDlgItem(IDC_BUTTON1)->ShowWindow(TRUE);   GetDlgItem(IDC_BUTTON2)->ShowWindow(SW_HIDE);//隐藏按钮控件2   CRect rect1,rect2;   GetClientRect(rect1);   GetDlgItem(IDC_STATIC1)->GetClientRect(rect2);   GetDlgItem(IDC_STATIC1)->MoveWindow((rect1.left+50),(rect1.top+80),rect2.Width(),rect2.Height());//移动静态控件1   GetDlgItem(IDC_BUTTON1)->GetClientRect(rect2);   GetDlgItem(IDC_BUTTON1)->MoveWindow((rect1.left+80),(rect1.top+120),rect2.Width(),rect2.Height());//移动按钮控件1
    2022-03-29 18:20:27下载
    积分:1
  • VC6.0 使用ODBC读写Excel表格文件
    本VC++源码主要演示使用ODBC数据库访问技术:通过ODBC读写Excel表格文件,若数据库表没有被创建,则将"读取"按钮和"列表"控件置为无效状态,获取主程序所在路径,获取数据库文件。
    2022-08-21 14:44:43下载
    积分:1
  • VC++ 实现对软件的简单加密(注册)功能
    VC++ 实现对软件的简单加密,本程序是通过C盘序列号来加密文件,实现软件的注册功能,软件号和C盘序列号同时正确才可验证,而C盘的序列号是唯一的,获得c盘序列号的代码如下:   DWORD VolumeSerialNumber;   GetVolumeInformation("c:",NULL,12,&VolumeSerialNumber,NULL,NULL,NULL,10);   VolumeSerialNumber^=0x12345678;//本机c盘序列号简单运算   m_usernum=VolumeSerialNumber;   UpdateData(false);   然后通过序列的判断,来验证加密是否正确,比如下边的代码来做加密验证:   UpdateData(true);   DWORD num;   num=m_usernum;   num^=0x1999aa98+12;//加密算法   if(!(num==m_serialnum))   {    AfxMessageBox("输入的序列号不正确!");    return;   }
    2022-11-07 22:05:03下载
    积分:1
  • C语言写的超强悍音乐播放器
    这是一款用C写的播放器,超强超漂亮,C语言写的超强悍音乐播放器源代码,先来看运行截图,播放器的界面那可是相当漂亮吧。而且播放功能也很强大。程序主界面经过了美化,运行后在Windows托盘处显示图标,这个程序是大家学习C多媒体编程绝佳的范例,对C感兴趣的不要错过哦。
    2022-02-15 07:45:57下载
    积分:1
  • VC Calendar 自定义的日历选择插件
    VC++ 6.0 Calendar 自定义的日历选择插件,这个功能相信大家都比较熟悉了,是用来选择日期和时间的,避免用户输入出错,选择后可把数据填充在指定的文本框内,或提交至下一个数据处理环节。这个例子是前两年的,风格和Windows XP相似,与Windows7和10版本有所区别,核心代码为:   //设置选择日期   void CCalendarDlg::OnSetCursel()   {    //更新变量    UpdateData(TRUE);    //构造日期变量    CTime tm(m_nYear,m_nMonth,m_nDay,0,0,0);    m_MonthCalCtrl.SetCurSel(tm);   }   //设置日期   void CCalendarDlg::OnSetToday()   {    //更新变量    UpdateData(TRUE);    //构造日期变量    CTime tm(m_nYear,m_nMonth,m_nDay,0,0,0);    m_MonthCalCtrl.SetToday(&tm);    m_MonthCalCtrl.SetCurSel(tm);   }   
    2022-01-25 19:36:09下载
    积分:1
  • VC++ 读取SQL Server数据库结构
    VC++ 读取SQL Server数据库结构,读取指定数据库指定数据表的数据结构,演示中仅是读取出字段名、字段类型和字段类型取值大小,只是演示一种获取字段数据的方法:   m_grid.SetExtendedStyle(LVS_EX_FLATSB    |LVS_EX_FULLROWSELECT    |LVS_EX_HEADERDRAGDROP    |LVS_EX_ONECLICKACTIVATE    |LVS_EX_GRIDLINES);   m_grid.InsertColumn(0,"字段名",LVCFMT_LEFT,100,0);   m_grid.InsertColumn(1,"类型",LVCFMT_LEFT,100,1);   m_grid.InsertColumn(2,"大小",LVCFMT_LEFT,100,2);
    2022-07-17 13:15:00下载
    积分:1
  • VC++ MDI多文档位图的复制和粘贴功能实现
    多文档(MDI):实现在多个文档中位图的复制和粘贴操作,使用说明:打开一个图像,使用“编辑”菜单中的“复制”和“粘贴”对图像进行操作,清除剪切板的内容,拷贝DIB!   CMDICopyBitmapDoc* pDoc = GetDocument();   pDoc->ReplaceHDIB(hNewDIB); // 释放旧的DIB   pDoc->InitDIBData(); // 建立新的调色板及尺寸   pDoc->SetModifiedFlag(TRUE);   SetScrollSizes(MM_TEXT, pDoc->GetDocSize());   OnRealizePal((WPARAM)m_hWnd,0); // 实现新的调色板   pDoc->UpdateAllViews(NULL);
    2022-01-25 22:15:31下载
    积分:1
  • VC++6.0实现ListCtrl列表控件拖放、整栏选择和显示网格
    VC++6.0实现列表控件的扩展风格——拖放、整栏选择和显示网格等功能,通过这个源代码你可以熟悉VC中的ListCtrl列表控件的多种用法,运行效果如示例截图所示,部分代码如下:   DWORD liststyle=m_ctlList.GetExtendedStyle();//获取列表控件的扩展风格m_ctlList.SetExtendedStyle(liststyle|LVS_EX_HEADERDRAGDROP|LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);//设置列表控件的新扩展风格   m_pImageList.Create(16, 16, ILC_COLOR, 2, 2);//创建图像列表   CBitmap bm;   bm.LoadBitmap(IDB_BITMAP1);//载入Bitmap资源   m_pImageList.Add(&bm, RGB(0, 0, 0));//添加到图像列表   bm.DeleteObject();   bm.LoadBitmap(IDB_BITMAP2);   m_pImageList.Add(&bm, RGB(0, 0, 0));   //初始化列表视   m_ctlList.SetImageList(&m_pImageList,LVSIL_SMALL);//设置ImageList   CString Field[2]={"性别","姓名"};//列表视的表头   for(int j=0;j
    2023-02-22 08:35:03下载
    积分:1
  • 696518资源总数
  • 105559会员总数
  • 1今日下载