社区
C++ Builder
帖子详情
有什么比较好的HTTP控件?
dolphi
2002-06-22 10:21:01
BCB自带的HTTP1.0控件在等待服务器返回数据的时候很耗费cpu资源(90%)。请问有什么比较好的控件?
...全文
112
2
打赏
收藏
有什么比较好的HTTP控件?
BCB自带的HTTP1.0控件在等待服务器返回数据的时候很耗费cpu资源(90%)。请问有什么比较好的控件?
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lj_csdn
2002-06-22
打赏
举报
回复
曾经作了一个用线程和socket取网页内容的程序,
主要的部分如下:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include <stdio.h>
#include "requestwww.h"
#pragma package(smart_init)
__fastcall requestwww::requestwww(bool CreateSuspended,char *host,char *ip,char *url,char *htmlfile,int *returnvalue,char *errormessage)
: TThread(CreateSuspended)
{ FreeOnTerminate=true;
strcpy(HOST,host);
strcpy(IP,ip);
strcpy(URL,url);
strcpy(HTMLFile,htmlfile);
ErrorMessage=errormessage;
ReturnValue=returnvalue;
strcpy(ErrorMessage,"连接:");
strcat(ErrorMessage,HOST);
*ReturnValue=1;
}
void __fastcall requestwww::Execute()
{ char *p,s[1024];
long size;
int i,endrecv;
DWORD tick,nwrt;
DeleteFile(HTMLFile);
fp=CreateFile(HTMLFile,GENERIC_WRITE,FILE_SHARE_WRITE,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
if (fp==INVALID_HANDLE_VALUE)
{ sprintf(ErrorMessage,"创建文件%s失败!");
*ReturnValue=0;
return;
}
strcpy(s,"GET ");
p=strstr(URL,HOST);
if (p) { p+=strlen(HOST); if (p[0]=='/') strcat(s,p); else strcat(s,"/");}
else strcat(s,"/");
strcat(s," HTTP/1.0\r\n");
strcat(s,"Host: ");
strcat(s,HOST);
strcat(s,"\r\n");
strcat(s,"Accept: www/source, text/html, video/mpeg, image/jpeg, image/x-tiff\r\n");
strcat(s,"Accept: image/x-rgb, image/x-xbm, image/gif, */*, application/postscript\r\n");
strcat(s,"Content-type: application/x-www-form-urlencoded\r\n\r\n");
if (http.Connect(0,IP,80)!=0)
{ CloseHandle(fp);
sprintf(ErrorMessage,"连接:%s失败!",HOST);
*ReturnValue=0;
return;
}
sprintf(ErrorMessage,"发送:%s",URL);
*ReturnValue=(*ReturnValue)+1;
http.Send(s,strlen(s)+1);
size=0;
tick=GetTickCount();
endrecv=0;
while (GetTickCount()-tick<60000)
{ if (http.Recv()<0)
{ http.Close();
CloseHandle(fp);
strcpy(ErrorMessage,"连接被对方断开!");
*ReturnValue=0;
return;
}
i=http.Length();
if (i)
{ tick=GetTickCount();
size+=i;
p=http.Read();
WriteFile(fp,p,i,&nwrt,NULL);
if (strstr(p,"</html>")) endrecv=1;
else endrecv=0;
http.Clear(0);
sprintf(ErrorMessage,"recv:%ld",size);
*ReturnValue=(*ReturnValue)+1;
if (endrecv) break;
}
}
http.Close();
CloseHandle(fp);
if (endrecv) sprintf(ErrorMessage,"接收网页完成,共%ld字节!",size);
else strcpy(ErrorMessage,"接收网页超时!");
*ReturnValue=0;
}
//GET / HTTP/1.0\r\n
//Host: 168.171.1.170\r\n
//Accept: www/source, text/html, video/mpeg, image/jpeg, image/x-tiff\r\n
//Accept: image/x-rgb, image/x-xbm, image/gif, */*, application/postscript\r\n
//Content-type: application/x-www-form-urlencoded\r\n"
我不懂电脑
2002-06-22
打赏
举报
回复
自己用http协议
利用
控件
实现
HTTP
断点续传技术
要求:开源,免费,技术支持技术:分片,分块,断点续传,加密传输,加密存储需求:大文件上传,批量上传,断点续传,文件夹上传,大文件下载,批量下载,断点下载,文件夹下载文件夹:上传下载需要支持层级结构,采用非压缩方式文件大小:100G前端:vue2,vue3,vue-cli,jquery,html,webuploader后端:java,JSP,springboot,struts服务器:linux,信创国产化数据库:mysql,oracle,达梦,国产化数据库。
初识ASP.NET---若干常见错误
近期在学习ASP.NET的相关知识,期间遇到了一些错误,比較常见的错误总结了一下,希望此文能给ASP.NET刚開始学习的人一些帮助。同一时候记录这些错误也方便今后自己查看。 1、 GridView“GridView1”激发了未处理的事件“PageIndexChanging”。 错误原因:(例如以下图—1) ...
ASP.NET内容总结
第一章 Web应用程序概述 1.概述 B/S:浏览器-服务器架构 C/S:用户-库服务器架构 2.
HTTP
协议 URL(Uniform Resource Locator)统一资源定位器 由四部分组成 应用层协议://主机 ip或域名/路径/文件明
HTTP
超文本传输协议 工作四步骤:建立连接-发送
http
请求-接收请求,响应,回传-关闭连接,接收响应。 回复页面
HTTP
服务器关闭连接后,不在存...
分享Silverlight/WPF/Windows Phone/HTML5一周学习导读(11月28日-12月4日)
分享Silverlight/WPF/Windows Phone/HTML5一周学习导读(11月28日-12月4日) 本周Silverlight学习资源更新 Silverlight
Http
Util 封装Post调用 nivana999 Silverlight中Grid.ColumnDefinitions属性设置错误 xjbest S...
C++ Builder
13,871
社区成员
102,696
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章