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
1
-
14