读书人

C++在通过HTTP传递数据的时候怎么解决

发布时间: 2012-06-19 14:45:20 作者: rapoo

C++在通过HTTP传递数据的时候如何解决超时问题?
大家好!

现在遇到一个问题,C++以GET方式给另外一个服务器提交数据,我这边的数据量很大,一秒钟几十条数据,如果在提交数据的时候出现了超时或者网页暂时打不开的情况,程序就卡在那里,影响后面数据的接收和发送。


请问该如何解决这个问题?

能否实现那种类似UDP的方式,发出去就不管了。

另外,如果以SOCKET方式发送数据,会不会比HTTP的方式好一些?

谢谢

[解决办法]
HTTP是使用了tcp协议,传数据还是TCP吧,但是如果你传的数据丢一点数据包也没有关系的话,可以考虑自己用UDP去传
[解决办法]

发送数据你是可以控制的,你设置超时就好了。

发射后不管。
[解决办法]
curl支持完美支持异步回调与超时.
[解决办法]
用事件驱动模型吧
http://blog.csdn.net/yfkiss/article/details/7553832

c++有libv、libevent、boost asio等可以使用
[解决办法]
win32下的话 可以试度用winhttp
[解决办法]

探讨

引用:

curl支持完美支持异步回调与超时.


哦?

能否给一个最简单的例子?比如抓取百度首页时,限制时间?

谢谢

[解决办法]
探讨

引用:

引用:

curl支持完美支持异步回调与超时.


哦?

能否给一个最简单的例子?比如抓取百度首页时,限制时间?

谢谢


例子是没有了,我做过http代理模块,方法很简单,两种路子:

1,使用curl_multi_perform,这是封装好的select+write+read+callback,你只要curl_……

[解决办法]
建议还是用异步方式,或者是开个连接池,那个空闲就往哪个连接里面扔;不过要是开连接池的话就要考虑包排序的问题了

读书人网 >C++

热点推荐