通过http如何下载文件。

news/2024/7/3 5:37:14
 1 None.gif void  OnDownload_thread( void   *  p)
 2 ExpandedBlockStart.gifContractedBlock.gif dot.gif {
 3 InBlock.gif    CClientDC dc( static_cast < CMainFrame *> (p));
 4 InBlock.gif    dc.TextOut( 50 100 " 正在下载最新版本迅雷,请等待dot.gif " );
 5 InBlock.gif
 6 InBlock.gif     char   * Url  =   " http://down.sandai.net:8080/Thunder5.1.5.189.exe " ;
 7 InBlock.gif    HINTERNET hSession  =  InternetOpen( " RookIE/1.0 " , INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL,  0 );
 8 InBlock.gif     if  (hSession  !=  NULL)
 9 ExpandedSubBlockStart.gifContractedSubBlock.gif     dot.gif {
10 InBlock.gif        HINTERNET handle2  =  InternetOpenUrl(hSession, Url, NULL,  0 , INTERNET_FLAG_DONT_CACHE,  0 );
11 InBlock.gif         if  (handle2  !=  NULL)
12 ExpandedSubBlockStart.gifContractedSubBlock.gif         dot.gif {
13 InBlock.gif            printf( " %s\n " ,Url);
14 InBlock.gif             byte  Temp[MAXBLOCKSIZE];
15 InBlock.gif            ULONG Number  =   1 ;
16 InBlock.gif            
17 InBlock.gif            FILE  * stream;
18 InBlock.gif             if ( (stream  =  fopen(  " d:\\Thunder5.1.5.189.exe " " wb "  ))  !=  NULL ) // 这里只是个测试,因此写了个死的文件路径
19 ExpandedSubBlockStart.gifContractedSubBlock.gif              dot.gif {
20 InBlock.gif                 while  (Number  >   0 )
21 ExpandedSubBlockStart.gifContractedSubBlock.gif                 dot.gif {
22 InBlock.gif                    InternetReadFile(handle2, Temp, MAXBLOCKSIZE  -   1 & Number);
23 InBlock.gif                     // fprintf(stream, (const char*)Temp);
24 InBlock.gif                     fwrite(Temp,  sizeof  ( char ), Number , stream);
25 ExpandedSubBlockEnd.gif                }

26 InBlock.gif                fclose( stream );
27 ExpandedSubBlockEnd.gif            }

28 InBlock.gif            
29 InBlock.gif            InternetCloseHandle(handle2);
30 InBlock.gif            handle2  =  NULL;
31 ExpandedSubBlockEnd.gif        }

32 InBlock.gif        InternetCloseHandle(hSession);
33 InBlock.gif        hSession  =  NULL;
34 ExpandedSubBlockEnd.gif    }

35 InBlock.gif
36 InBlock.gif
37 InBlock.gif     // CClientDC dc(this);
38 InBlock.gif     dc.TextOut( 80 100 " 下载完成。 " );
39 ExpandedBlockEnd.gif}

http://www.niftyadmin.cn/n/1849607.html

相关文章

linux 清空文件_Linux系统入门:Bash初识

Bash Shell介绍什么是Bash ShellBash Shell是一个命令解释器&#xff0c;它在操作系统的最外层&#xff0c;负责用户程序与内核进行交互操作的一种接口&#xff0c;讲用户输入的命令翻译给操作系统&#xff0c;并将处理后的结果输出至屏幕。当我们使用远程连接工具连接linux服务…

JavaScript学习笔记(十五) 事件模型

0、DOM 标准 在开始学习 JavaScript 事件模型前&#xff0c;我们首先来了解一下什么是 DOM&#xff08;Document Object Model&#xff09; 简单来说&#xff0c;DOM 是 W3C 定义的访问 HTML 和 XML 文档的标准 按照不同的发展阶段&#xff0c;分为不同的级别&#xff0c;分…

Android 一个程序A启动程序B

2019独角兽企业重金招聘Python工程师标准>>> 1.首先&#xff0c;要获得程序B的包名 2.Intent intentgetPackageManager.getLaunchIntentForPackage(packageName); startActivity(intent); android获取程序包名&#xff1a;getPackageManager.getInstalledPackage…

如何求地球上两点之间的最短距离_蔡司三坐标Calypso平行平面之间距离的测量方法...

求平行平面之间的距离&#xff0c;这个命题的概念是模糊不清的。例如&#xff1a;1. 求平面1的中心到平面2的垂线&#xff1f;在Calypso内可以使用垂直线或者笛卡尔距离/直角坐标距离实现。但考虑实际两平面不可能理论平行&#xff0c;平面1的各顶点到平面2的垂直距离是不同的&…

马斯诺的行为科学体系的基础

马斯诺的行为科学体系的基础之一是把人的需求分成五个方面&#xff1a;一、生存需要&#xff1b;二、安全需要&#xff1b;三、从属和爱的需要&#xff1b;四、自尊的需要&#xff1b;五、自我实现的需要。东方人与其不完全一样&#xff0c;东方人的需求可分为&#xff1a;富余…

c# 用BitArray来管理包含关系

BitArray是.net自带的引用类型&#xff0c;在名称空间Systems.Collections下面。输入BitArray可以看到它的摘要&#xff1a;“管理位值的压缩数组&#xff0c;该值表示为布尔值&#xff0c;其中 true 表示位是打开的 (1)&#xff0c;false 表示位是关闭的 (0)”。 定义一个BitA…

loss下降auc下降_随机梯度下降法介绍及其参数讲解

算法介绍简单来说&#xff0c;梯度下降就是从山顶找一条最短的路走到山脚最低的地方。但是因为选择方向的原因&#xff0c;我们找到的的最低点可能不是真正的最低点。如图所示&#xff0c;黑线标注的路线所指的方向并不是真正的地方。既然是选择一个方向下山&#xff0c;那么这…

JavaScript学习笔记(十六) XMLHttpRequest

1、介绍 &#xff08;1&#xff09;AJAX&#xff08;Asynchronous JavaScript and XML&#xff09; AJAX 原来是指通过异步 JavaScript 从服务器 XML 文档获取数据&#xff0c;然后更新部分网页&#xff0c;避免刷新整个网页 后来&#xff0c;这个词语慢慢成为在浏览器通过脚…