En esta página

QCoapClient Class

La clase QCoapClient permite a la aplicación enviar peticiones CoAP y recibir respuestas. Más...

Cabecera: #include <QCoapClient>
CMake: find_package(Qt6 REQUIRED COMPONENTS Coap)
target_link_libraries(mytarget PRIVATE Qt6::Coap)
qmake: QT += coap
Hereda: QObject

Nota: Todas las funciones de esta clase son reentrantes.

Propiedades

Funciones públicas

QCoapClient(QtCoap::SecurityMode securityMode = QtCoap::SecurityMode::NoSecurity, QObject *parent = nullptr)
virtual ~QCoapClient()
QNetworkInterface bindInterface() const
void cancelObserve(QCoapReply *notifiedReply)
void cancelObserve(const QUrl &url)
QCoapReply *deleteResource(const QCoapRequest &request)
QCoapReply *deleteResource(const QUrl &url)
void disconnect()
QCoapResourceDiscoveryReply *discover(const QUrl &url, const QString &discoveryPath = QLatin1String("/.well-known/core"))
QCoapResourceDiscoveryReply *discover(QtCoap::MulticastGroup group = QtCoap::MulticastGroup::AllCoapNodesIPv4, int port = QtCoap::DefaultPort, const QString &discoveryPath = QLatin1String("/.well-known/core"))
QCoapReply *get(const QCoapRequest &request)
QCoapReply *get(const QUrl &url)
QCoapReply *observe(const QCoapRequest &request)
QCoapReply *observe(const QUrl &url)
QCoapReply *post(const QCoapRequest &request, const QByteArray &data = QByteArray())
QCoapReply *post(const QCoapRequest &request, QIODevice *device)
QCoapReply *post(const QUrl &url, const QByteArray &data = QByteArray())
QCoapReply *put(const QCoapRequest &request, const QByteArray &data = QByteArray())
QCoapReply *put(const QCoapRequest &request, QIODevice *device)
QCoapReply *put(const QUrl &url, const QByteArray &data = QByteArray())
void setAckRandomFactor(double ackRandomFactor)
void setAckTimeout(uint ackTimeout)
void setBindInterface(const QNetworkInterface &iface)
void setBlockSize(quint16 blockSize)
void setMaximumRetransmitCount(uint maximumRetransmitCount)
void setMaximumServerResponseDelay(uint responseDelay)
void setMinimumTokenSize(int tokenSize)
void setSecurityConfiguration(const QCoapSecurityConfiguration &configuration)
void setSocketOption(QAbstractSocket::SocketOption option, const QVariant &value)

Señales

void bindInterfaceChanged(const QNetworkInterface &iface)
void error(QCoapReply *reply, QtCoap::Error error)
void finished(QCoapReply *reply)
void responseToMulticastReceived(QCoapReply *reply, const QCoapMessage &message, const QHostAddress &sender)

Descripción Detallada

La clase QCoapClient contiene señales que se disparan cuando la respuesta de una petición enviada ha llegado.

La aplicación puede utilizar un QCoapClient para enviar peticiones a través de una red CoAP. Proporciona funciones para peticiones estándar: cada una devuelve un objeto QCoapReply, al que se entregarán los datos de respuesta; éstos pueden leerse cuando llega la señal finished().

Una petición simple puede enviarse con:

QCoapClient *client = new QCoapClient(this);
connect(client, &QCoapClient::finished, this, &TestClass::slotFinished);
client->get(QCoapRequest(Qurl("coap://coap.me/test")));

Nota: Una vez finalizado el procesamiento de la petición, es responsabilidad del usuario borrar el objeto QCoapReply en el momento oportuno. No lo borre directamente dentro de la ranura conectada a finished(). Puede utilizar la función deleteLater().

También puede utilizar una solicitud de observación. Esto se puede utilizar como arriba, o más convenientemente con la señal QCoapReply::notified():

QCoapRequest request = QCoapRequest(Qurl("coap://coap.me/obs"));
QCoapReply *reply = client->observe(request);
connect(reply, &QCoapReply::notified, this, &TestClass::slotNotified);

Y la observación puede cancelarse con:

client->cancelObserve(reply);

Cuando llega una respuesta, el QCoapClient emite una señal finished().

Nota: Para una solicitud de descubrimiento, el objeto devuelto es un QCoapResourceDiscoveryReply. Puede ser utilizado de la misma manera que un QCoapReply pero contiene también una lista de recursos.

Véase también QCoapRequest, QCoapReply, y QCoapResourceDiscoveryReply.

Documentación de propiedades

[since 6.11] bindInterface : QNetworkInterface

Esta propiedad contiene la interfaz de red a utilizar por el socket

El valor por defecto es un objeto invalid QNetworkInterface , lo que significa que los paquetes entrantes serán aceptados desde todas las interfaces de red. Del mismo modo, todas las interfaces de red pueden ser utilizadas para enviar paquetes salientes.

Cuando se especifica una interfaz de red válida, los paquetes entrantes sólo se aceptarán desde esa interfaz. Del mismo modo, los paquetes salientes sólo se enviarán utilizando esa interfaz.

Cambiar la propiedad sólo tiene efecto la próxima vez que el cliente se conecte al socket, así que asegúrate de llamar a disconnect() si hubo alguna comunicación previa.

Esta propiedad se introdujo en Qt 6.11.

Funciones de acceso:

QNetworkInterface bindInterface() const
void setBindInterface(const QNetworkInterface &iface)

Señal de notificador:

void bindInterfaceChanged(const QNetworkInterface &iface)

Documentación de funciones miembro

[explicit] QCoapClient::QCoapClient(QtCoap::SecurityMode securityMode = QtCoap::SecurityMode::NoSecurity, QObject *parent = nullptr)

Construye un objeto QCoapClient para el securityMode dado y establece parent como el objeto padre.

El valor por defecto para securityMode es QtCoap::NoSecurity, que desactiva la seguridad.

[virtual noexcept] QCoapClient::~QCoapClient()

Destruye el objeto QCoapClient y libera cualquier recurso. Tenga en cuenta que los objetos QCoapReply que se devuelven desde esta clase tienen el conjunto QCoapClient como padres, lo que significa que se eliminarán junto con él.

void QCoapClient::cancelObserve(QCoapReply *notifiedReply)

Cancela la observación de un recurso utilizando la respuesta notifiedReply devuelta por el método observe().

Se trata de una función sobrecargada.

Véase también observe().

void QCoapClient::cancelObserve(const QUrl &url)

Cancela la observación de un recurso identificado por url.

Se trata de una función sobrecargada.

Véase también observe().

QCoapReply *QCoapClient::deleteResource(const QCoapRequest &request)

Envía el request utilizando el método DELETE y devuelve un nuevo objeto QCoapReply.

Véase también get(), put(), post(), observe() y discover().

QCoapReply *QCoapClient::deleteResource(const QUrl &url)

Envía una solicitud DELETE al destino url.

Esta es una función sobrecargada.

Véase también get(), put(), post(), observe() y discover().

void QCoapClient::disconnect()

Cierra los sockets y conexiones abiertos para liberar el transporte.

Nota: En el modo seguro esto necesita ser llamado antes de cambiar la configuración de seguridad o conectarse a otro servidor.

Véase también setSecurityConfiguration().

QCoapResourceDiscoveryReply *QCoapClient::discover(const QUrl &url, const QString &discoveryPath = QLatin1String("/.well-known/core"))

Descubre los recursos disponibles en el url dado y devuelve un nuevo objeto QCoapResourceDiscoveryReply que emite la señal QCoapResourceDiscoveryReply::discovered() cada vez que llega la respuesta.

La ruta de descubrimiento por defecto es "/.well-known/core", pero puede cambiarse pasando una ruta diferente a discoveryPath. El descubrimiento se describe en RFC 6690.

Véase también get(), post(), put(), deleteResource(), y observe().

QCoapResourceDiscoveryReply *QCoapClient::discover(QtCoap::MulticastGroup group = QtCoap::MulticastGroup::AllCoapNodesIPv4, int port = QtCoap::DefaultPort, const QString &discoveryPath = QLatin1String("/.well-known/core"))

Descubre los recursos disponibles en los extremos que se han unido al group en el port dado. Devuelve un nuevo objeto QCoapResourceDiscoveryReply que emite la señal QCoapResourceDiscoveryReply::discovered() cada vez que llega una respuesta. group es una de las direcciones de grupo de multidifusión CoAP y su valor predeterminado es QtCoap::AllCoapNodesIPv4.

La ruta de descubrimiento por defecto es "/.well-known/core", pero puede cambiarse pasando una ruta diferente a discoveryPath. Discovery se describe en RFC 6690.

Se trata de una función sobrecargada.

Véase también get(), post(), put(), deleteResource(), y observe().

[signal] void QCoapClient::error(QCoapReply *reply, QtCoap::Error error)

Esta señal se emite siempre que se produce un error. El parámetro reply puede ser nullptr si el error no está relacionado con un QCoapReply específico. El parámetro error contiene el código de error.

Véase también finished(), QCoapReply::error() y QCoapReply::finished().

[signal] void QCoapClient::finished(QCoapReply *reply)

Esta señal se emite junto con la señal QCoapReply::finished() cada vez que se recibe una respuesta CoAP, tras un éxito o un error. El parámetro reply contendrá un puntero a la respuesta que se acaba de recibir.

Véase también error(), QCoapReply::finished() y QCoapReply::error().

QCoapReply *QCoapClient::get(const QCoapRequest &request)

Envía el request utilizando el método GET y devuelve un nuevo objeto QCoapReply.

Véase también post(), put(), deleteResource(), observe() y discover().

QCoapReply *QCoapClient::get(const QUrl &url)

Envía una petición GET a url y devuelve un nuevo objeto QCoapReply.

Se trata de una función sobrecargada.

Véase también post(), put(), deleteResource(), observe() y discover().

QCoapReply *QCoapClient::observe(const QCoapRequest &request)

Envía una solicitud para observar el objetivo request y devuelve un nuevo objeto QCoapReply que emite la señal QCoapReply::notified() cada vez que llega una nueva notificación.

Véase también cancelObserve(), get(), post(), put(), deleteResource() y discover().

QCoapReply *QCoapClient::observe(const QUrl &url)

Envía una solicitud para observar el objetivo url y devuelve un nuevo objeto QCoapReply que emite la señal QCoapReply::notified() cada vez que llega una nueva notificación.

Se trata de una función sobrecargada.

Véase también cancelObserve(), get(), post(), put(), deleteResource() y discover().

QCoapReply *QCoapClient::post(const QCoapRequest &request, const QByteArray &data = QByteArray())

Envía el request utilizando el método POST y devuelve un nuevo objeto QCoapReply. Utiliza data como carga útil para esta solicitud. Si data está vacío, se utilizará la carga útil de request.

Véase también get(), put(), deleteResource(), observe(), y discover().

QCoapReply *QCoapClient::post(const QCoapRequest &request, QIODevice *device)

Envía el request utilizando el método POST y devuelve un nuevo objeto QCoapReply. Utiliza el contenido de device como carga útil para esta solicitud. Un dispositivo nulo se trata como contenido vacío, en cuyo caso se utilizará la carga útil de request.

Nota: El dispositivo debe estar abierto y ser legible antes de llamar a esta función.

Se trata de una función sobrecargada.

Véase también get(), put(), deleteResource(), observe(), y discover().

QCoapReply *QCoapClient::post(const QUrl &url, const QByteArray &data = QByteArray())

Envía una petición POST a url y devuelve un nuevo objeto QCoapReply. Utiliza data como carga útil para esta petición.

Se trata de una función sobrecargada.

Ver también get(), put(), deleteResource(), observe(), y discover().

QCoapReply *QCoapClient::put(const QCoapRequest &request, const QByteArray &data = QByteArray())

Envía el request utilizando el método PUT y devuelve un nuevo objeto QCoapReply. Utiliza data como carga útil para esta solicitud. Si data está vacío, se utilizará la carga útil de request.

Véase también get(), post(), deleteResource(), observe(), y discover().

QCoapReply *QCoapClient::put(const QCoapRequest &request, QIODevice *device)

Envía el request utilizando el método PUT y devuelve un nuevo objeto QCoapReply. Utiliza el contenido de device como carga útil para esta solicitud. Un dispositivo nulo se trata como contenido vacío, en cuyo caso se utilizará la carga útil de request.

Nota: El dispositivo debe estar abierto y ser legible antes de llamar a esta función.

Se trata de una función sobrecargada.

Véase también get(), post(), deleteResource(), observe(), y discover().

QCoapReply *QCoapClient::put(const QUrl &url, const QByteArray &data = QByteArray())

Envía una petición PUT a url y devuelve un nuevo objeto QCoapReply. Utiliza data como carga útil para esta petición.

Se trata de una función sobrecargada.

Véase también get(), post(), deleteResource(), observe(), y discover().

[signal] void QCoapClient::responseToMulticastReceived(QCoapReply *reply, const QCoapMessage &message, const QHostAddress &sender)

Esta señal se emite cuando llega una respuesta unidifusión a una solicitud multidifusión. El parámetro reply contiene un puntero a la respuesta que se acaba de recibir, message contiene la carga útil y los detalles del mensaje, y sender contiene la dirección del remitente.

Véase también error(), QCoapReply::finished() y QCoapReply::error().

void QCoapClient::setAckRandomFactor(double ackRandomFactor)

Establece el valor ACK_RANDOM_FACTOR definido en RFC 7252 - Sección 4.2, en ackRandomFactor. Este valor debe ser mayor o igual a 1. El valor por defecto es 1.5.

Véase también setAckTimeout().

void QCoapClient::setAckTimeout(uint ackTimeout)

Establece el valor ACK_TIMEOUT definido en RFC 7252 - Sección 4.2 a ackTimeout en milisegundos. El valor por defecto es 2000 ms.

Este tiempo de espera sólo se aplica a los mensajes confirmables. El tiempo de espera real para transmisiones fiables es un valor aleatorio entre ACK_TIMEOUT y ACK_TIMEOUT * ACK_RANDOM_FACTOR.

Véase también setAckRandomFactor().

void QCoapClient::setBlockSize(quint16 blockSize)

Establece el tamaño máximo de bloque utilizado por el protocolo en blockSize al enviar solicitudes y recibir respuestas. El tamaño de bloque debe ser una potencia de dos.

void QCoapClient::setMaximumRetransmitCount(uint maximumRetransmitCount)

Establece el valor MAX_RETRANSMIT definido en RFC 7252 - Sección 4.2 a maximumRetransmitCount. Este valor debe ser menor o igual a 25. El valor predeterminado es 4.

void QCoapClient::setMaximumServerResponseDelay(uint responseDelay)

Establece el valor de MAX_SERVER_RESPONSE_DELAY en responseDelay en milisegundos. El valor por defecto es 250 segundos.

Como se define en RFC 7390 - Sección 2.5, MAX_SERVER_RESPONSE_DELAY es el retardo de respuesta máximo esperado sobre todos los servidores a los que el cliente puede enviar una petición multicast.

void QCoapClient::setMinimumTokenSize(int tokenSize)

Establece el tamaño mínimo del token en tokenSize en bytes. Por razones de seguridad se recomienda utilizar tokens con una longitud de al menos 4 bytes. El valor por defecto de este parámetro es de 4 bytes.

void QCoapClient::setSecurityConfiguration(const QCoapSecurityConfiguration &configuration)

Establece los parámetros de configuración de seguridad de configuration. La configuración será ignorada si se utiliza el modo QtCoap::NoSecurity.

Nota: Este método debe ser llamado antes de que comience el handshake. Si necesitas cambiar la configuración de seguridad después de establecer una conexión segura con el servidor, el cliente necesita ser desconectado primero.

Véase también disconnect().

void QCoapClient::setSocketOption(QAbstractSocket::SocketOption option, const QVariant &value)

Establece la toma QUdpSocket option en value.

© 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.