Qt lib を使用して C++ でマルチ クライアント サーバー (IRC) を作成しています。それがサーバー アーキテクチャへの適切なアプローチであるかどうかを知りたいです。
接続ごとにスレッドを作成することは避けたいので、すべてのクライアント ソケットをある種のコンテナーに格納し、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
}