QSctpServer Class
La classe QSctpServer fournit un serveur basé sur le protocole SCTP. En savoir plus...
| En-tête : | #include <QSctpServer> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Network) target_link_libraries(mytarget PRIVATE Qt6::Network) |
| qmake : | QT += network |
| Hérite de : | QTcpServer |
- Liste de tous les membres, y compris les membres hérités
- QSctpServer fait partie de l'API de programmation réseau.
Fonctions publiques
| QSctpServer(QObject *parent = nullptr) | |
| virtual | ~QSctpServer() |
| int | maximumChannelCount() const |
| QSctpSocket * | nextPendingDatagramConnection() |
| void | setMaximumChannelCount(int count) |
Fonctions protégées réimplémentées
| virtual void | incomingConnection(qintptr socketDescriptor) override |
Description détaillée
Le protocole SCTP (Stream Control Transmission Protocol) est un protocole de la couche transport dont le rôle est similaire à celui des protocoles courants TCP et UDP. À l'instar de l'UDP, le SCTP est orienté messages, mais il garantit un transport fiable et séquentiel des messages grâce à un contrôle de congestion similaire à celui du TCP. Pour plus de détails sur ce protocole, consultez la documentation relative à l'QSctpSocket.
QSctpServer est une sous-classe pratique de QTcpServer qui vous permet d’accepter les connexions SCTP entrantes soit en émulation TCP, soit en mode datagramme.
La manière la plus courante d'utiliser QSctpServer consiste à créer un objet et à définir le nombre maximal de canaux que le serveur est prêt à prendre en charge, en appelant la fonction setMaximumChannelCount(). Vous pouvez activer le mode d'émulation TCP en passant un argument négatif lors de cet appel. De plus, la valeur spéciale 0 (valeur par défaut) indique d’utiliser la valeur du pair comme nombre réel de canaux. La nouvelle connexion entrante hérite de ce nombre du descripteur de socket du serveur et l’ajuste en fonction des paramètres du point de terminaison distant.
En mode d’émulation TCP, les clients acceptés utilisent un flux d’octets continu unique pour la transmission de données, et QSctpServer se comporte comme un simple QTcpServer. Appelez nextPendingConnection() pour accepter la connexion en attente en tant qu’ QTcpSocket connecté. La fonction renvoie un pointeur vers un QTcpSocket dans QAbstractSocket::ConnectedState que vous pouvez utiliser pour communiquer avec le client. Ce mode ne donne accès qu’aux fonctionnalités de base du protocole SCTP. La socket transmet des paquets SCTP sur IP au niveau système et interagit avec l’application via l’interface QTcpSocket.
En revanche, le mode datagramme est orienté message et permet une transmission simultanée complète de plusieurs flux de données entre les points d’extrémité. Appelez la fonction nextPendingDatagramConnection() pour accepter la connexion en attente en mode datagramme en tant qu’ QSctpSocket connecté.
Remarque : cette classe n’est pas prise en charge sur la plateforme Windows.
Voir également QTcpServer, QSctpSocket et QAbstractSocket.
Documentation des fonctions membres
[explicit] QSctpServer::QSctpServer(QObject *parent = nullptr)
Crée un objet QSctpServer.
Définit le mode de fonctionnement par datagrammes. L'argument ` parent ` est transmis au constructeur de ` QObject`.
Voir également setMaximumChannelCount(), listen() et setSocketDescriptor().
[virtual noexcept] QSctpServer::~QSctpServer()
Supprime l'objet ` QSctpServer `. Si le serveur est à l'écoute de connexions, la socket est automatiquement fermée.
Voir aussi close().
[override virtual protected] void QSctpServer::incomingConnection(qintptr socketDescriptor)
Réimplémente : QTcpServer::incomingConnection(qintptr socketDescriptor).
int QSctpServer::maximumChannelCount() const
Renvoie le nombre maximal de canaux que les sockets acceptées sont capables de prendre en charge.
Une valeur de 0 (par défaut) signifie que le nombre de canaux de connexion sera défini par le point d'extrémité distant.
Renvoie -1 si QSctpServer n exécution en mode d'émulation TCP.
Voir également setMaximumChannelCount().
QSctpSocket *QSctpServer::nextPendingDatagramConnection()
Renvoie la prochaine connexion en mode datagramme en attente sous la forme d'un objet ` QSctpSocket ` connecté.
Une connexion en mode datagramme permet une communication orientée messages et multi-flux.
Le socket est créé en tant qu’enfant du serveur, ce qui signifie qu’il est automatiquement supprimé lorsque l’objet ` QSctpServer ` est détruit. Il est toutefois recommandé de supprimer explicitement l’objet lorsque vous n’en avez plus besoin, afin d’éviter tout gaspillage de mémoire.
Cette fonction renvoie null s’il n’y a aucune connexion en mode datagramme en attente.
Remarque : l’objet ` QSctpSocket ` renvoyé ne peut pas être utilisé depuis un autre thread. Si vous souhaitez utiliser une connexion entrante depuis un autre thread, vous devez redéfinir la méthode ` incomingConnection()`.
Voir également hasPendingConnections(), nextPendingConnection() et QSctpSocket.
void QSctpServer::setMaximumChannelCount(int count)
Définit le nombre maximal de canaux que le serveur est prêt à prendre en charge en mode datagramme, à l'adresse count. Si count vaut 0, c'est la valeur du nombre maximal de canaux du point de terminaison qui sera utilisée. Une valeur négative de count active le mode d'émulation TCP.
N’appelez cette méthode que lorsque QSctpServer est dans l’état UnconnectedState.
Voir également maximumChannelCount() et QSctpSocket.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.