最近在開發im服務器,需要大並發鏈接。QT默認的是使用select模型的,這種輪詢方式非常慢。我 github找到了epoll版本的qt.修改了QT的socket notify內核,不需要修改原來編寫的代碼,直接設置QT的事件轉發方式就行了。支持qt4.0和5.0
在 main文件添加
#include<QCoreApplication>
#include"configserver.h"
#include<QThread>
#ifdefQ_OS_LINUX
#include"qeventdispatcher_epoll.h"
#endif
intmain(intargc,char*argv[])
{
#ifdefQ_OS_LINUX
QCoreApplication::setEventDispatcher(newQEventDispatcherEpoll);
#endif
QCoreApplicationa(argc,argv);
returna.exec();
}
在。pro文件添加
linux{
QT += core-private
SOURCES += ../common/qeventdispatcher_epoll.cpp
HEADERS += ../common/qeventdispatcher_epoll.h
}
可以直接跨平台了使用了。上qt epoll源碼下載地址:
------------------------------------------分割線------------------------------------------
FTP地址:ftp://ftp1.linuxidc.com
用戶名:ftp1.linuxidc.com
密碼:www.linuxidc.com
在 2014年LinuxIDC.com\4月\epoll for qt網絡模塊,直接替換qt的select模型
下載方法見 http://www.linuxidc.com/Linux/2013-10/91140.htm
------------------------------------------分割線------------------------------------------
Qt 的詳細介紹:請點這裡
Qt 的下載地址:請點這裡