5015|16

57

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

如何编写wince上的下载程序 [复制链接]

该下载程序用C++写,运行在ppc上,功能是现实从internet下载文件到ppc上,请问各位有资料提供吗?十二分火急(因本人对c++不熟悉),希望大家多多帮忙

最新回复

        public bool DownFile(string URL, string Filename, ProgressBar Prog, int intT)         {             bool blnOK = false;             try             {                 System.Net.HttpWebRequest Myrq = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(URL);                 System.Net.HttpWebResponse myrp = (System.Net.HttpWebResponse)Myrq.GetResponse();                 long totalBytes = myrp.ContentLength;                 Prog.Maximum = (int)totalBytes;                 System.IO.Stream st = myrp.GetResponseStream();                 System.IO.Stream so = new System.IO.FileStream(Filename, System.IO.FileMode.Create);                 long totalDownloadedByte = 0;                 byte[] by = new byte[1024];                 int osize = st.Read(by, 0, (int)by.Length);                 while (osize > 0)                 {                     totalDownloadedByte = osize + totalDownloadedByte;                     Application.DoEvents();                     so.Write(by, 0, osize);                     if (intT == 1) Prog.Value = (int)totalDownloadedByte;                     osize = st.Read(by, 0, (int)by.Length);                     //lblJD.Text = totalDownloadedByte.ToString() + " / " + totalBytes.ToString();                 }                 so.Close();                 st.Close();                 blnOK = true;             }             catch (Exception err)             {                 MessageBox.Show("错误" + err.Message);             }             finally             {             }             return blnOK;         }复制代码 c#中的,测试可以使用的,调用方法 bool blnDownloaded = DownFile("文件网络地址", strPath + "Update.exe", progressBar1, 1);                         if (blnDownloaded)                         {                             lblState.Text = "下载升级完成!正在启动升级程序!";                             Application.DoEvents();                         }复制代码  详情 回复 发表于 2010-2-1 10:24
点赞 关注

回复
举报

83

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
uP
 
 

回复

57

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
路过..帮顶
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

4
 
这个主要是SOCKET通信方面的东西
做过C/S结构的通信,这个没做过
不过这种东西GOOGLE下啊,很多的
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

5
 
UP
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

6
 
帮顶吧,我也在做。
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

7
 
来瞅瞅,这方面我也不是很懂,居说可以用HTTP与FTP来实现,准备尝试ing…
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

8
 
up
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

9
 
对C++不熟悉,却要用C++去开发?你这是何苦呢,用自己熟悉的语言不就可以了吗。
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

10
 
可以直接用socket 或者使用 WinInet
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

11
 
用wininet,这套API操作跟PC上没有什么差别,用Socket也行,HTTP协议比较简单,FTP稍复杂了
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

12
 
在windows mobile上,我用wininet可以实现!但是放到ce5.0上有问题,如果你是在ppc上,应该没有问题!http://topic.eeworld.net/u/20100127/14/7d57f7aa-df36-419f-b5ae-7172f50579c6.html?23419
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

13
 
继续顶!坚持顶…
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

14
 
可以使用httpwebrequest来实现。
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

15
 
引用 13 楼 jake_lin 的回复:
可以使用httpwebrequest来实现。
呵呵,经典呀…
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

16
 
这个还是用FTP吧
文件传输协议
就是网络上下载文件用的
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

17
 
  1.         public bool DownFile(string URL, string Filename, ProgressBar Prog, int intT)
  2.         {
  3.             bool blnOK = false;
  4.             try
  5.             {
  6.                 System.Net.HttpWebRequest Myrq = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(URL);
  7.                 System.Net.HttpWebResponse myrp = (System.Net.HttpWebResponse)Myrq.GetResponse();
  8.                 long totalBytes = myrp.ContentLength;
  9.                 Prog.Maximum = (int)totalBytes;
  10.                 System.IO.Stream st = myrp.GetResponseStream();
  11.                 System.IO.Stream so = new System.IO.FileStream(Filename, System.IO.FileMode.Create);
  12.                 long totalDownloadedByte = 0;
  13.                 byte[] by = new byte[1024];
  14.                 int osize = st.Read(by, 0, (int)by.Length);
  15.                 while (osize > 0)
  16.                 {
  17.                     totalDownloadedByte = osize + totalDownloadedByte;
  18.                     Application.DoEvents();
  19.                     so.Write(by, 0, osize);
  20.                     if (intT == 1) Prog.Value = (int)totalDownloadedByte;
  21.                     osize = st.Read(by, 0, (int)by.Length);
  22.                     //lblJD.Text = totalDownloadedByte.ToString() + " / " + totalBytes.ToString();
  23.                 }
  24.                 so.Close();
  25.                 st.Close();
  26.                 blnOK = true;
  27.             }
  28.             catch (Exception err)
  29.             {
  30.                 MessageBox.Show("错误" + err.Message);
  31.             }
  32.             finally
  33.             {
  34.             }
  35.             return blnOK;

  36.         }
复制代码



c#中的,测试可以使用的,调用方法

  1. bool blnDownloaded = DownFile("文件网络地址", strPath + "Update.exe", progressBar1, 1);
  2.                         if (blnDownloaded)
  3.                         {
  4.                             lblState.Text = "下载升级完成!正在启动升级程序!";
  5.                             Application.DoEvents();
  6.                         }
复制代码
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
【TI有奖直播报名中】
直播主题:MSPM0 系列 MCU 再添新成员:高性能与高性价比的优秀组合 MSPM0G351x / MSPM0L111x
直播时间:4月24日(周四)上午10:00
直播奖励:好礼等您拿!

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网 4

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表