QSctpServer Class
La clase QSctpServer proporciona un servidor basado en SCTP. Más...
| Cabecera: | #include <QSctpServer> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Network)target_link_libraries(mytarget PRIVATE Qt6::Network) |
| qmake: | QT += network |
| Hereda: | QTcpServer |
- Lista de todos los miembros, incluyendo los heredados
- QSctpServer es parte de la API de programación de redes.
Funciones Públicas
| QSctpServer(QObject *parent = nullptr) | |
| virtual | ~QSctpServer() |
| int | maximumChannelCount() const |
| QSctpSocket * | nextPendingDatagramConnection() |
| void | setMaximumChannelCount(int count) |
Funciones Protegidas Reimplementadas
| virtual void | incomingConnection(qintptr socketDescriptor) override |
Descripción Detallada
SCTP (Stream Control Transmission Protocol) es un protocolo de capa de transporte que desempeña un papel similar al de los populares protocolos TCP y UDP. Al igual que UDP, SCTP está orientado a mensajes, pero garantiza un transporte de mensajes fiable y en secuencia con control de congestión como TCP. Para más detalles sobre el protocolo, consulte la documentación de QSctpSocket.
QSctpServer es una subclase de QTcpServer que permite aceptar conexiones SCTP entrantes en modo emulación TCP o datagrama.
La forma más común de utilizar QSctpServer es construir un objeto y establecer el número máximo de canales que el servidor está preparado para soportar, llamando a setMaximumChannelCount(). Se puede establecer el modo de emulación TCP pasando un argumento negativo en esta llamada. Además, un valor especial de 0 (el valor por defecto) indica que se utilice el valor del peer como número real de canales. La nueva conexión entrante hereda este número del descriptor de socket del servidor y lo ajusta según la configuración del extremo remoto.
En el modo de emulación TCP, los clientes aceptados utilizan un único flujo continuo de bytes para la transmisión de datos, y QSctpServer actúa como un simple QTcpServer. Llame a nextPendingConnection() para aceptar la conexión pendiente como un QTcpSocket conectado. La función devuelve un puntero a un QTcpSocket en QAbstractSocket::ConnectedState que puede utilizar para comunicarse con el cliente. Este modo sólo da acceso a las funciones básicas del protocolo SCTP. El socket transmite paquetes SCTP sobre IP a nivel de sistema e interactúa a través de la interfaz QTcpSocket con la aplicación.
Por el contrario, el modo datagrama está orientado a mensajes y proporciona una transmisión simultánea completa de múltiples flujos de datos entre puntos finales. Llame a nextPendingDatagramConnection() para aceptar la conexión pendiente en modo datagrama como una conexión QSctpSocket.
Nota: Esta clase no está soportada en la plataforma Windows.
Véase también QTcpServer, QSctpSocket, y QAbstractSocket.
Documentación de las funciones miembro
[explicit] QSctpServer::QSctpServer(QObject *parent = nullptr)
Construye un objeto QSctpServer.
Establece el modo de operación de datagramas. El argumento parent se pasa al constructor QObject's.
Ver también setMaximumChannelCount(), listen(), y setSocketDescriptor().
[virtual noexcept] QSctpServer::~QSctpServer()
Destruye el objeto QSctpServer. Si el servidor está escuchando conexiones, el socket se cierra automáticamente.
Véase también close().
[override virtual protected] void QSctpServer::incomingConnection(qintptr socketDescriptor)
Reimplementa: QTcpServer::incomingConnection(qintptr socketDescriptor).
int QSctpServer::maximumChannelCount() const
Devuelve el número máximo de canales que pueden soportar los sockets aceptados.
Un valor de 0 (por defecto) significa que el número de canales de conexión será establecido por el extremo remoto.
Devuelve -1, si QSctpServer se ejecuta en modo de emulación TCP.
Véase también setMaximumChannelCount().
QSctpSocket *QSctpServer::nextPendingDatagramConnection()
Devuelve la siguiente conexión pendiente en modo datagrama como un objeto conectado QSctpSocket.
La conexión en modo datagrama proporciona una comunicación multi-stream orientada a mensajes.
El socket se crea como hijo del servidor, lo que significa que se elimina automáticamente cuando se destruye el objeto QSctpServer. Aún así, es una buena idea borrar el objeto explícitamente cuando hayas terminado con él, para evitar malgastar memoria.
Esta función devuelve null si no hay conexiones en modo datagrama pendientes.
Nota: El objeto QSctpSocket devuelto no puede ser utilizado desde otro hilo. Si desea utilizar una conexión entrante desde otro subproceso, debe anular incomingConnection().
Véase también hasPendingConnections(), nextPendingConnection(), y QSctpSocket.
void QSctpServer::setMaximumChannelCount(int count)
Establece el número máximo de canales que el servidor está preparado para soportar en modo datagrama, en count. Si count es 0, se utilizaría el valor de número máximo de canales del punto final. Negativo count establece un modo de emulación TCP.
Llame a este método sólo cuando QSctpServer esté en UnconnectedState.
Véase también maximumChannelCount() y 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.