• 4277阅读
  • 9回复

[讨论]基于协程的网络编程库QtNetworkNg [复制链接]

上一主题 下一主题
离线songhuirong1
 

只看楼主 倒序阅读 楼主  发表于: 2019-11-19
最近在网上看到一个Qt的网络库,叫QtNetworkNg,这是它的简单介绍:

QtNetworkNg 是一个基于协程的网络编程库。目标为 C++ 开发者提供简洁而不失强大的网络编程 API,成为 C++ 界最好的网络编程库。目前已经具备完善的协程管理功能、基本的 socket 编程和完善的 HTTP 1.1 客户端。
和 boost::asio 相比,QtNetworkNg 的 API 更为简单,使用方法与 Python 的 gevent 和 requests 相当类似,简洁而不失强大。和大多数协程库相比,QtNetworkNg 提供了更为完善的协程管理机制,甚至还包含了协程锁、事件等实现。
目前 QtNetworkNg 已经支持多种平台。如名称所示,QtNetworkNg 依赖于 Qt.
QtNetworkNg 根据平台选择使用 ucontext/window fiber/fcontext。默认使用 fcontext,这是 boost context 所使用的高效汇编代码。
官网地址:https://qtng.org/
github地址:https://github.com/hgoldfish/qtnetworkng
有人了解这个网络库吗?性能如何?高并发如何,比如linux下是否支持epoll。
离线liulin188

只看该作者 1楼 发表于: 2019-11-19
重复造轮子没啥意思,这个开发者是国人吧,到不如写点那些优秀库的教程。
成为 C++ 界最好的网络编程库,牛逼吹的有点大!!!
至少我不会去用,没看出有比其他库强的地方。。。。

https://wiki.qt.io/Qt_5.12_Release
https://wiki.qt.io/New_Features_in_Qt_5.12
https://wiki.qt.io/Qt_5.12.0_Known_Issues
https://www.qt.io/blog/qt-5.13.2-released
https://www.qt.io/blog/qt-creator-4.10.2-released
https://wiki.qt.io/Qt_5.12_Tools_and_Versions
离线songhuirong1

只看该作者 2楼 发表于: 2019-11-19
回 liulin188 的帖子
liulin188:重复造轮子没啥意思,这个开发者是国人吧,到不如写点那些优秀库的教程。
“成为 C++ 界最好的网络编程库”,牛逼吹的有点大!!!
至少我不会去用,没看出有比其他库强的地方。。。。
 (2019-11-19 13:18) 

Qt自带的Network库是个遗憾啊,不支持高并发,官方一直不更新。如果第三方能够弥补的话,那也是非常不错的。
离线liulin188

只看该作者 3楼 发表于: 2019-11-19
回 songhuirong1 的帖子
songhuirong1:Qt自带的Network库是个遗憾啊,不支持高并发,官方一直不更新。如果第三方能够弥补的话,那也是非常不错的。 (2019-11-19 13:44)

如果你真是需要高并发的话,qt也用不到吧,qt也就做做客户端,写代码方便。
服务端直接linux  c epoll这种现在不要太成熟,何必再去研究其他的,bug一堆
https://wiki.qt.io/Qt_5.12_Release
https://wiki.qt.io/New_Features_in_Qt_5.12
https://wiki.qt.io/Qt_5.12.0_Known_Issues
https://www.qt.io/blog/qt-5.13.2-released
https://www.qt.io/blog/qt-creator-4.10.2-released
https://wiki.qt.io/Qt_5.12_Tools_and_Versions
离线songhuirong1

只看该作者 4楼 发表于: 2019-11-20
回 liulin188 的帖子
liulin188:如果你真是需要高并发的话,qt也用不到吧,qt也就做做客户端,写代码方便。
服务端直接linux  c epoll这种现在不要太成熟,何必再去研究其他的,bug一堆
 (2019-11-19 13:56) 

如果不用Qt的话,解决方案有很多,我是希望Qt自身能支持,这样就不用去学其它的东西了,也不辜负Qt功能强大这一说。
离线圣域天子

只看该作者 5楼 发表于: 2019-11-20
回 liulin188 的帖子
liulin188:如果你真是需要高并发的话,qt也用不到吧,qt也就做做客户端,写代码方便。
服务端直接linux  c epoll这种现在不要太成熟,何必再去研究其他的,bug一堆
 (2019-11-19 13:56) 

我就是一直用Qt做服务端的~~~
离线圣域天子

只看该作者 6楼 发表于: 2019-11-20
回 songhuirong1 的帖子
songhuirong1:如果不用Qt的话,解决方案有很多,我是希望Qt自身能支持,这样就不用去学其它的东西了,也不辜负Qt功能强大这一说。 (2019-11-20 09:04) 

看到有对IOCP的支持,也找到了epoll的方法使用,应该是支持的。
离线songhuirong1

只看该作者 7楼 发表于: 2019-11-20
回 圣域天子 的帖子
圣域天子:看到有对IOCP的支持,也找到了epoll的方法使用,应该是支持的。 (2019-11-20 10:46) 

你说的是哪个支持IOCP和epoll?是Qt吗?还是QtNetworkNg这个库。
离线圣域天子

只看该作者 8楼 发表于: 2019-11-20
回 songhuirong1 的帖子
songhuirong1:你说的是哪个支持IOCP和epoll?是Qt吗?还是QtNetworkNg这个库。 (2019-11-20 12:21) 

QtNetworkNg 呀

Qt本身当然不支持
离线songhuirong1

只看该作者 9楼 发表于: 2019-11-21
回 圣域天子 的帖子
圣域天子:QtNetworkNg 呀
Qt本身当然不支持 (2019-11-20 15:03) 

我大致看了下,没看到,这里面教程都没写完整,这个库用的人太少
快速回复
限100 字节
 
上一个 下一个