原来对下载文件进行速度限制这么简单(ISAPI)

以前在ASP中一直解决不了下载速度的限制的问题,用ISAPI原来可以这么轻松搞定


void CBinaryWrite::Default(CHttpServerContext* pCtxt)
{
 char buf[1024];

 pCtxt->GetServerVariable("HTTP_ALL",buf,1024);

 this->AddHeader(pCtxt,"Content-type = image/jpeg/r/n");
 this->AddHeader(pCtxt,"Content-type = text/plain/r/n");

 StartContent(pCtxt);

 CFile f;
 f.Open("d://PHOTO-055.JPG",CFile::modeRead);

 ULONG flen=f.GetLength();
 ULONG bRead=0;
 ULONG bRealRead=0;


 while (bRead<flen)
 {
  bRealRead=f.Read(buf,(flen-bRead>1024)?1024:(flen-bRead));
  pCtxt->WriteClient(buf,&bRealRead);

  bRead+=bRealRead;
  Sleep(500);

 }

 f.Close();
 EndContent(pCtxt);
}

关键就是这个Sleep,可以放弃CPU资源,让下载过程暂停一定时间,这样通过控制这个暂停的时间,就可以控制速度

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值