捐赠 | 广告 | 注册 | 发布 | 上传 | 关于我们    
  沪ICP备05001939号 DELPHI盒子 | 盒子论坛 | 盒子文章 | 盒子问答悬赏 | 最新更新 | 论坛检索 | 下载中心 | 高级搜索    
  精品专区 | 繁體中文 | 奖励公告栏 | 直通车账号登陆 | 关闭GOOGLE广告 | 临时留言    
 
广告
评论:curl的delphi实现
chinaz 77610 2014/1/2 16:51:14
ddd
drop 59693 2013/9/7 17:07:58
在程序最开始的地方 curl_global_init, 然后再创建各个线程,
在各个线程中用 curl_easy_init来创建curl 的 handle,
然后针对这个handle用 curl_easy_setopt(handle, xxx, xxx) 设置传输相关的各种参数,最后用 cur_easy_perform(handle)来执行动作,传输结束后,
最后调用 curl_easy_cleanup(handle) 来释放,然后结束线程
在程序的主线程中,等所有线程都结束后,在程序退出前,调用 curl_global_cleanup来结束 libcurl.
drop 59690 2013/9/7 17:04:45
主线程进行全局初始化 curl_global_init(curl_blobal_all);
禁用超时设置  curl_easy_setopt(handler,curlopt_nosignal,1l);
设置线程间 curl_handle共享dns缓存
fatspider 55044 2013/8/31 2:07:01
盒子要收MM了,火柴不够下载不了.
fatspider 55038 2013/8/31 1:51:44
libcurl 官网上都明说了, 可以线程间传递,但不能在线程间使用,会不安全的建一个线程对应一个连接.
chineseswish 47028 2013/7/8 13:09:37
这个封装不是多线程安全的。
chatop 47015 2013/7/7 23:33:30
最新测试结果,在多线程下不适用。
chatop 47014 2013/7/7 23:32:09
function TGCurlHttpRequest.getHtml(const url: string; out msg: string; out html: string; const utf8: Byte): boolean;
begin
  self.Lock;
  Result := false;
  try
    try
      self.Get(url);
      html := self.GetReplyText;
      if utf8 = 1 then
        html := AnsiToUtf8(html);
      Result := true;
    except
      on e: Exception do
      begin
        msg := e.Message;
      end;
    end;
  finally
    self.UnLock;
  end;
end;

似乎用这种方式还稳定点,但也出现闪退情况了,还在测试,现在16个线程在跑。
使用dll,事实上只是单线程下载了。
chatop 47013 2013/7/7 23:04:42
多线程下完全 不行。只能单线程使用,而且导致程序异常退出。
doremi 46974 2013/7/4 14:36:12
您目前火柴:48
嘿嘿,省火柴了
doremi 46973 2013/7/4 14:32:47
楼主发的是libcurl.dll的Delphi封装吧
doremi 46972 2013/7/4 14:31:39
libcurl主要功能就是用不同的协议连接和沟通不同的服务器~也就是相当封装了的sockPHP 支持libcurl(允许你用不同的协议连接和沟通不同的服务器)。, libcurl当前支持http, https, ftp, gopher, telnet, dict, file, 和ldap 协议。libcurl同样支持HTTPS证书授权,HTTP POST, HTTP PUT, FTP 上传(当然你也可以使用PHP的ftp扩展), HTTP基本表单上传,代理,cookies,和用户认证。
ritapl 46968 2013/7/4 10:50:05
这东西干啥用的呢,一般的通信组件基于http的不都可以做上传下载吗,indy,ics,rtc...
radtek 46967 2013/7/4 10:33:01
看到libcurl.dll就没啥兴趣了,封装而已
第一页 上一页 下一页 最后页 有 14 条纪录 共1页 1 - 14
 用户名:
 密 码:
自动登陆(30天有效)
 
  DELPHI盒子版权所有 1999-2012 V3.01 沪ICP备05001939号 更新RSS列表