Подход к мульти-клиентскому серверу с Qt

Я создаю многопользовательский сервер (IRC) в C ++, используя Qt lib. Я хотел бы знать, хороший ли это подход к архитектуре сервера.

Я хотел бы избежать создания потока для каждого соединения, поэтому я подумал, что мог бы иметь все клиентские сокеты в каком-то контейнере и выполнять действия (например, обработку входящего пакета) с помощью ThreadPool.

Мое единственное беспокойство заключается в том, имеют ли розетки, подключенные к SLOT гарантирует параллельную обработку клиента.

Код:

CServer::CServer(QObject *parent) : QTcpServer(parent)
{
server = new QTcpServer(this);
connect(server, SIGNAL(newConnection()), this, SLOT(newConnection()));

if(!server->listen(QHostAddress::Any, 6667))
qDebug() << "Oh noes";
}

void CServer::newConnection(){
add server->nextPendingConnection() to the container
}

2

Решение

Может быть, этот пример поможет вам: http://www.qtcentre.org/wiki/index.php?title=Multi_client_server_without_threading

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]