libevent for qt网络模块
libevent for qt网络模块,直接替换qt的select模型,支持epoll,select,pool.使用非常简单,无需修改以前的代码结构
最近在开发im服务器,需要大并发链接。QT默认的是使用select模型的,这种轮询方式非常慢。在高并发连接,我们需要epoll才能发挥linux服务器的性能.而且使用简单,整个服务端代码架构无需修改,设置QT的分发事件就可以使用了,只要在main里面添加 :
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
int main(int argc, char *argv[])
{
#ifdef Q_OS_LINUX
QCoreApplication::setEventDispatcher(new EventDispatcherLibEvent);
// qInstallMessageHandler(customMessageHandler);
#endif
QCoreApplication a(argc, argv);
auto *ser=new ConfigServer;
ser->startServer();
return a.exec();
}
|
在.pro文件添加
Vim
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
linux{
LIBS += -levent_core
SOURCES += ../common/eventdispatcher_libevent/eventdispatcher_libevent.cpp \
../common/eventdispatcher_libevent/eventdispatcher_libevent_config.cpp \
../common/eventdispatcher_libevent/eventdispatcher_libevent_p.cpp \
../common/eventdispatcher_libevent/socknot_p.cpp \
../common/eventdispatcher_libevent/tco_eventfd.cpp \
../common/eventdispatcher_libevent/tco_pipe.cpp \
../common/eventdispatcher_libevent/tco.cpp \
../common/eventdispatcher_libevent/timers_p.cpp
HEADERS += ../common/eventdispatcher_libevent/common.h \
../common/eventdispatcher_libevent/eventdispatcher_libevent.h \
../common/eventdispatcher_libevent/eventdispatcher_libevent_config.h \
../common/eventdispatcher_libevent/eventdispatcher_libevent_config_p.h \
../common/eventdispatcher_libevent/eventdispatcher_libevent_p.h \
../common/eventdispatcher_libevent/libevent2-emul.h \
../common/eventdispatcher_libevent/qt4compat.h \
../common/eventdispatcher_libevent/tco.h \
../common/eventdispatcher_libevent/wsainit.h
}
|
可以直接跨平台了使用了
附上qt libevent源码下载地址:qt_libevent.zip
http://love.junzimu.com/archives/2657
libevent for qt网络模块的更多相关文章
- libevent for qt的讨论
一直对Qt官方的QtNetwork模块抱有遗憾,Qt自带的网络模块用的是select模型,无法支持高并发的服务器开发.最近在网上看到有个libevent for qt的东西,它直接替换了Qt的sele ...
- Qt 网络模块如何使用?
1.网络模块介绍 类名 说明 中文 QAbstractNetworkCache The interface for cache implementations 缓存实现的接口 QNetworkCach ...
- Qt网络模块如何使用(表格)
1.网络模块介绍 类名 说明 中文 QAbstractNetworkCache The interface for cache implementations 缓存实现的接口 QNetworkCach ...
- GeoServer-REST应用:基于Qt网络编程一键同步发布空间数据和样式至GeoServer
@ 目录 简介 配置 步骤 1.引入Qt网络模块 2.创建网络管理.网络响应.网络请求 3.创建工作空间 4.创建数据存储并上传数据 5.上传样式文件 6.图层发布 6.图 ...
- Primecoin在windows上的部署和启动服务
Primecoin在windows上的部署和启动服务: 一.从官方获得Primecoin的windows版安装包: 二.一路像安装客户端一样的安装: 三.安装成功后它会自动弹出客户端运行,同步数据, ...
- bitcoind
Bitcoin Core Daemon version v0.15.1.0-g7b57bc998f Usage: bitcoind [options] Start Bitcoin Core Daemo ...
- Qt中加载Libevent静态库(通过reimp和rs两条语句将lib转为a)
文章来源:http://blog.sina.com.cn/s/blog_731bf4c90102wnpr.html 本文仅是个人经验总结,若有错误欢迎指教! 最近要做一个跨平台的项目,同时也涉及到网络 ...
- Qt 工程 pro文件
工作中,感觉pro文件的有些内容真不太懂,现系统性的学习一下.于此备录,分享共勉. 为了更好的理解,先创建一个简单的工程作为实践. [1]创建一个pro文件 1.1 新建proDemo工程.步骤如下: ...
- Qt之Threads和QObjects
简述 QThread继承自QObject,它发射信号(signals)以表明线程执行开始或结束,并提供了一些槽函数(slots). 更有趣的是,QObjects可以在多线程中使用,发射信号以在其它线程 ...
随机推荐
- NOI十连测 第五测 T2
思路:考虑建立可持久化线段树,第一层维护的是i这个位置的next位置,第二层,维护的是接下来走这个字符会到哪个节点. 感觉很巧妙啊,不愧是Claris #include<algorithm> ...
- 使用ownCloud搭建你的个人云服务(ubuntu 14.04 server)(ownCloud对文件不切片,Seafile对文件切片),owncloud没有存储的功能 只能同步 本地删除了服务器也会删除
ownCloud是什么 ownCloud是一个自由且开源的个人云存储解决方案(类似百度网盘或者Dropbox),包括两个部分:服务器和客户端. ownCloud在客户端可通过网页界面,或者安装专用的客 ...
- elasticsearh 中每个节点中需要有相同的插件
elasticsearh 中每个节点中需要有相同的插件 [2016-09-13 19:25:24,049][INFO ][discovery.zen ] [node02] failed to send ...
- PS抠图神器: KnockOut 2.0安装汉化和使用教程
PS抠图神器: KnockOut 2.0安装汉化和使用教程 http://jingyan.baidu.com/article/6b97984d8aeadc1ca2b0bf3b.html
- Lowest Common Ancestor of a Binary Search Tree 解答
Question Given a binary search tree (BST), find the lowest common ancestor (LCA) of two given nodes ...
- 第16讲- UI组件之TextView
第16讲 UI组件之TextView Android系统所有UI类都是建立在View和ViewGroup这两类的基础上的. 所有View的子类称为widget:所有ViewGroup的子类称为Layo ...
- sprig——jar包
Struts. Hibernate.Spring这类的框架给我们开发带来非常大的好处,让我们更加快速.有效的开发.所以我们在开发中通常都会用到各种框架,每个框架 都有很多jar包,每个jar都有各自不 ...
- 常用LINUX脚本汇总(1)
1.查看磁盘使用空间 df -hl 2.查看文件或者文件夹大小 du -sh 文件(夹)名 查看文件大小 AIX系统为du -sg 3.查看当前用户下定时任务列表crontab -l 4.修改定时 ...
- mycat源码分析
http://www.cnblogs.com/fernandolee24/p/5196367.html
- .NET批量大数据插入性能分析及比较
数据插入使用了以下几种方式 1. 逐条数据插入2. 拼接sql语句批量插入3. 拼接sql语句并使用Transaction4. 拼接sql语句并使用SqlTransaction5. 使用DataAda ...