• 832阅读
  • 16回复

好久没发帖了,编译打包一个宇宙超级无敌的libcurl-7.64库, libcurl-msvc库你值得拥有一个。 [复制链接]

上一主题 下一主题
离线fzw003
 

只看楼主 倒序阅读 楼主  发表于: 03-07
      首先喷一下QtNetwork的库,真的他妈的渣到家了。 做项目少用它来封装底层库微妙,不然后期你会发现不够用,不够用,不够用。当然做demo简单易用勉强勉强用。
     至于libcurl库怎么用 自己问百度。在这就不多废话了
     有缘人自取 ,愉快的玩耍。
--------------------------华丽的分割线--------------------------
libcurl库 libcurl.zip (370 K) 下载次数:51
在线hitler++

只看该作者 1楼 发表于: 03-07
是的,确实非常垃圾,QNetwork这垃圾玩意很多年前毁了我一个项目,asio也很一般,不过对比起来QNetwork就像坨粪,妈的,估计2026年网络库进stl
离线toby520

只看该作者 2楼 发表于: 03-08
    
QtQML多多指教开发社区 http://qtclub.heilqt.com
将QtCoding进行到底
关注移动互联网,关注金融
开发跨平台客户端,服务于金融行业
专业定制界面
群号:312125701   373955953(qml控件定做)
离线angelus

只看该作者 3楼 发表于: 03-08
还是看怎么用,Qt做服务器估计性能够呛,但是用做客户端是没有问题的,至少我做的都跑的挺好的,大并发和高性能还是推荐GO去做!
离线listen342325

只看该作者 4楼 发表于: 03-09
qt 自带的network确实很不好用,不支持阻塞,超时设置等。无论是socket还是http都不用qt的。
qt只用来写界面。
Qt 不错的选择
离线liulin188

只看该作者 5楼 发表于: 03-09
qt做http post,get确实不如curl,毕竟curl是专业做这个的,而且也只能做这方面。
就好象你不能和一个讲八国语言的人比你的方言。。。

但是qt做tcpserver我还是用的很欢的,阻塞和超时都支持只是楼上不会用罢了。。。。

qt的牛逼在于包容万象,解决大部分客户的大部分需求,不可能面面俱到而又无微不至,
自己去体会吧。
离线fzw003

只看该作者 6楼 发表于: 03-09
回 liulin188 的帖子
liulin188:qt做http post,get确实不如curl,毕竟curl是专业做这个的,而且也只能做这方面。
就好象你不能和一个讲八国语言的人比你的方言。。。
但是qt做tcpserver我还是用的很欢的,阻塞和超时都支持只是楼上不会用罢了。。。。
....... (2019-03-09 17:21) 

也没有一棒子打死的意思啦。当然如果做一些小型的东西够用了。而且可以说很完美。有些坑自己爬过,才懂的选择。推荐一个好用的东西。后来人也少走一些弯路。有些坑看不见但是很深很深,一坑可能好几年哈哈。。。
离线圣域天子

只看该作者 7楼 发表于: 03-10
我觉得除了高并发的服务端不行,做做客户端之类的还不错啊。
用起来方便,也比较稳定。

你们的需求是什么?到底问题是什么呢?
会不会是你们用法不正确导致的呢?
离线fzw003

只看该作者 8楼 发表于: 03-11
回 圣域天子 的帖子
圣域天子:我觉得除了高并发的服务端不行,做做客户端之类的还不错啊。
用起来方便,也比较稳定。
你们的需求是什么?到底问题是什么呢?
会不会是你们用法不正确导致的呢? (2019-03-10 21:07) 

       客户端用http去请求数据的是没有什么问题。但是你的http请求数累计到一定的10000以上以后。你的应用可能就嘎嘣脆了。qtnetwork在发起http请求的时候会向系统请求一个socket端口。端口数用完之后,它没有重新计数。如果你的客户端刚好在大厅广众之下因为这个嗝屁了,你还会觉得它很好很稳定吗?起初我还以为是内存没放干净,压测了一下libcurl库,专业,有重新计数功能,理论上用之不尽取之不竭。【你们第一想到的不会是固定几个端口去做,怎么可能,客户端欸,又不是服务器,如果那样,服务器和客户端不就耦合了吗。】跟并发没半毛线关系。请求数少,客户端开个一天两天没问题。如果做长期数据爬虫监控。不是每隔一段时间就要嗝屁一次?
        你们说的稳定是指短时期内的稳定,量变引起质变。那就不是平行维度下的稳定了。像这种现象,看来早有人遇到国解决了。如果你们有更好的解决方案不妨提供一下。
离线圣域天子

只看该作者 9楼 发表于: 03-13
回 fzw003 的帖子
fzw003:       客户端用http去请求数据的是没有什么问题。但是你的http请求数累计到一定的10000以上以后。你的应用可能就嘎嘣脆了。qtnetwork在发起http请求的时候会向系统请求一个socket端口。端口数用完之后,它没有重新计数。如果你的客户端刚好在大厅 .. (2019-03-11 08:21) 

这倒还真不知道~~~
离线angelus

只看该作者 10楼 发表于: 03-14
回 fzw003 的帖子
fzw003:       客户端用http去请求数据的是没有什么问题。但是你的http请求数累计到一定的10000以上以后。你的应用可能就嘎嘣脆了。qtnetwork在发起http请求的时候会向系统请求一个socket端口。端口数用完之后,它没有重新计数。如果你的客户端刚好在大厅 .. (2019-03-11 08:21)

还有这种事,不是应该系统调配,每次获取socket都随机分配未使用的端口号嘛,如果只累计请求到10000就会崩溃,那这种bug早就应该会被爆出的,也不会一直存在,反而有可能是你的http请求没有释放socket 引起的

离线圣域天子

只看该作者 11楼 发表于: 03-14
回 angelus 的帖子
angelus:还有这种事,不是应该系统调配,每次获取socket都随机分配未使用的端口号嘛,如果只累计请求到10000就会崩溃,那这种bug早就应该会被爆出的,也不会一直存在,反而有可能是你的http请求没有释放socket 引起的
 (2019-03-14 09:44) 

我也这么想的,慢点写个程序验证一下
离线angelus

只看该作者 12楼 发表于: 03-14
回 圣域天子 的帖子
圣域天子:我也这么想的,慢点写个程序验证一下 (2019-03-14 11:01)

我用以前写的测试程序修改了下
win7平台,qt5.11.3

用的QNetworkAccessManager的get方式

100毫秒访问一次www.baidu.com.
访问成功就发送信号,累加一次计数器。

现在已经跑到7.2W+以上了,内存占用一直稳定在42M(我有qml界面),
还没有崩溃,理论上来说,如果端口不回收,大概在65000左右就会没有端口资源了,
基本证明Qt的库还是挺稳定的,没有楼主说的那么无好用,应该是使用问题!

我尝试了不清理QNetworkReply指针,让它溢出,运行到大概5W+也没有崩溃,仅仅是内存多占用了700M没有释放
程序迟早会内存溢出崩溃,不过,看起来还需要运行好几个小时才会,这样看来,其实Qt的网络库还是很可靠的!


应该不会被百度抓到拉黑名单吧

一个额外的话题,我压测过一个仅依赖QCore的httpserver服务器,用的就是Qt的网络库加线程池
用ab.exe进行压测,10000的并发也跑的好好的,当然服务器是运行在树莓派的linux下的。
如果并发在1000左右的话,Qt网络库加上线程池,完全跑的溜溜的,如果需要10000以上并发的话,应该用go去重构服务端。

5.12.2发布了,我去瞅瞅,终于有官方的32位了






















离线fzw003

只看该作者 13楼 发表于: 03-15
回 angelus 的帖子
angelus:我用以前写的测试程序修改了下
win7平台,qt5.11.3
用的QNetworkAccessManager的get方式
....... (2019-03-14 14:32) 

get我没那么尝试。我用比较多的是post 。多线程 post。或许真没那么脆呢。有空跑下吧。
离线angelus

只看该作者 14楼 发表于: 03-18
回 fzw003 的帖子
fzw003:get我没那么尝试。我用比较多的是post 。多线程 post。或许真没那么脆呢。有空跑下吧。[表情] (2019-03-15 18:56) 

如果是多线程,那估计问题在线程上,如果没有使用线程池去管理,或者操作不当,开启线程太多,没有及时释放掉socket,积累到1万以上可能会挂掉的,客户端一般不会开启超过100个线程,特殊软件,建议使用特殊的特化库区做,qt网络库不适合过大的并发,只适合少并发,高性能程序
离线stlcours

只看该作者 15楼 发表于: 03-18
回 fzw003 的帖子
fzw003:       客户端用http去请求数据的是没有什么问题。但是你的http请求数累计到一定的10000以上以后。你的应用可能就嘎嘣脆了。qtnetwork在发起http请求的时候会向系统请求一个socket端口。端口数用完之后,它没有重新计数。如果你的客户端刚好在大厅 .. (2019-03-11 08:21) 

的http请求数累计到一定的10000以上以后。你的应用可能就嘎嘣脆了?还是你的代码问题,我天天上传5万文件都没有问题啊!!
离线stlcours

只看该作者 16楼 发表于: 03-18
回 fzw003 的帖子
fzw003:get我没那么尝试。我用比较多的是post 。多线程 post。或许真没那么脆呢。有空跑下吧。[表情] (2019-03-15 18:56) 

我也是post就没有问题啊。如果愿意的话,你可以把你的简化版Demo发上来,我帮你调顺。
快速回复
限100 字节
 
上一个 下一个