QCoapClient Class

QCoapClientクラスは、アプリケーションがCoAPリクエストを送信し、応答を受信することを可能にします。詳細...

ヘッダー #include <QCoapClient>
CMake: find_package(Qt6 REQUIRED COMPONENTS Coap)
target_link_libraries(mytarget PRIVATE Qt6::Coap)
qmake: QT += coap
継承: QObject

注意:このクラスの関数はすべてリエントラントです。

パブリック関数

QCoapClient(QtCoap::SecurityMode securityMode = QtCoap::SecurityMode::NoSecurity, QObject *parent = nullptr)
virtual ~QCoapClient()
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 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)

シグナル

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

詳細説明

QCoapClientクラスには、送信されたリクエストのリプライが到着したときにトリガーされるシグナルが含まれています。

アプリケーションはQCoapClientを使用して、CoAPネットワーク経由でリクエストを送信できる。標準的なリクエストのための関数を提供する。各リクエストはQCoapReply オブジェクトを返し、そのオブジェクトにレスポンスデータが配送される。finished() シグナルが到着すると、これを読み取ることができる。

単純なリクエストは

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

注: リクエストの処理が終わった後、QCoapReply オブジェクトを適切なタイミングで削除するのはユーザーの責任である。finished()に接続されたスロット内で直接削除しないでください。deleteLater ()関数を使用できます。

observeリクエストを使用することもできます。これは上記のように使用することもできますが、QCoapReply::notified() シグナルを使用するとより便利です:

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

で観測をキャンセルすることもできる:

client->cancelObserve(reply);

応答が到着すると、QCoapClientはfinished()シグナルを発信する。

注: ディスカバリーリクエストの場合、返されるオブジェクトはQCoapResourceDiscoveryReply 。これはQCoapReply と同じように使用できるが、リソースのリストも含む。

QCoapRequestQCoapReply 、およびQCoapResourceDiscoveryReplyも参照のこと

メンバー関数ドキュメント

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

与えられたsecurityMode のQCoapClientオブジェクトを構築し、parent を親オブジェクトとして設定します。

securityMode のデフォルトはQtCoap::NoSecurity で、セキュリティを無効にします。

[virtual noexcept] QCoapClient::~QCoapClient()

QCoapClient オブジェクトを破棄し、リソースを解放する。このクラスから返されるQCoapReply オブジェクトは、QCoapClient を親として持っていることに注意してください。

void QCoapClient::cancelObserve(QCoapReply *notifiedReply)

observe() メソッドによって返されたリプライnotifiedReply を使用して、リソースの観察をキャンセルします。

これはオーバーロードされた関数です。

observe()も参照してください

void QCoapClient::cancelObserve(const QUrl &url)

url で識別されるリソースの観測をキャンセルする。

これはオーバーロードされた関数です。

observe()も参照

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

DELETE メソッドを使用してrequest を送信し、新しいQCoapReply オブジェクトを返す。

get()、put()、post()、observe()、discover()も参照のこと

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

ターゲットurl に DELETE リクエストを送信する。

これはオーバーロードされた関数である。

get(),put(),post(),observe(),discover()も参照

void QCoapClient::disconnect()

トランスポートを解放するために、開いているソケットとコネクションを閉じる。

注意: セキュアモードでは、セキュリティ設定を変更したり、別のサーバに接続したりする前に、このメソッドを呼び出す必要がある。

setSecurityConfiguration()も参照のこと

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

与えられたurl で利用可能なリソースを発見し、レスポンスが到着するたびにQCoapResourceDiscoveryReply::discovered() シグナルを発する新しいQCoapResourceDiscoveryReply オブジェクトを返す。

発見パスのデフォルトは「/.well-known/core」であるが、discoveryPath に別のパスを渡すことで変更できる。ディスカバリはRFC 6690に記述されている。

get()、post()、put()、deleteResource()、observe()も参照のこと

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

与えられたportgroup に参加したエンドポイントで利用可能なリソースを発見する。レスポンスが到着するたびにQCoapResourceDiscoveryReply::discovered() シグナルを発する新しいQCoapResourceDiscoveryReply オブジェクトを返す。group は CoAP マルチキャストグループアドレスのひとつであり、デフォルトはQtCoap::AllCoapNodesIPv4 である。

ディスカバリーパスのデフォルトは「/.well-known/core」であるが、discoveryPath に別のパスを渡すことで変更できる。ディスカバリーはRFC 6690に記述されている。

これはオーバーロードされた関数である。

get()、post()、put()、deleteResource()、observe()も参照のこと

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

このシグナルは、エラーが発生するたびに発せられる。エラーが特定のQCoapReply に関連していない場合、reply パラメータはnullptr となる。error パラメータにはエラー・コードが含まれる。

finished()、QCoapReply::error()、QCoapReply::finished()も参照のこと

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

このシグナルは、CoAPリプライを受信するたびに、QCoapReply::finished()シグナルとともに発行される。reply パラメータには、受信したばかりのリプライへのポインタが格納される。

error()、QCoapReply::finished()、QCoapReply::error()も参照の こと。

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

GET メソッドを使用してrequest を送信し、新しいQCoapReply オブジェクトを返す。

post()、put()、deleteResource()、observe()、discover()も参照のこと

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

url に GET リクエストを送り、新しいQCoapReply オブジェクトを返す。

これはオーバーロードされた関数である。

post()、put()、deleteResource()、observe()、discover()も参照

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

ターゲットrequest を観測するリクエストを送信し、新しい通知が到着するたびにQCoapReply::notified() シグナルを発する新しいQCoapReply オブジェクトを返す。

cancelObserve(),get(),post(),put(),deleteResource(),discover()も参照

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

ターゲットurl を観察するリクエストを送り、新しい通知が到着するたびにQCoapReply::notified() シグナルを発する新しいQCoapReply オブジェクトを返す。

これはオーバーロードされた関数です。

cancelObserve(),get(),post(),put(),deleteResource(),discover()も参照

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

POSTメソッドを使用してrequest を送信し、新しいQCoapReply オブジェクトを返す。このリクエストのペイロードとしてdata を使用する。data が空の場合、request のペイロードが使用されます。

get()、put()、deleteResource()、observe()、discover()も参照

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

POSTメソッドを使用してrequest を送信し、新しいQCoapReply オブジェクトを返す。このリクエストのペイロードとしてdevice コンテンツを使用する。ヌル・デバイスは空のコンテンツとして扱われる。

注意: この関数を呼び出す前に、デバイスがオープンされていて読み取り可能でなければならない。

これはオーバーロードされた関数である。

get()、put()、deleteResource()、observe()、discover()も参照のこと

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

url に POST リクエストを送り、新しいQCoapReply オブジェクトを返す。このリクエストのペイロードとしてdata を使用する。

これはオーバーロードされた関数です。

get()、put()、deleteResource()、observe() およびdiscover()も参照

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

PUT メソッドを使用してrequest を送信し、新しいQCoapReply オブジェクトを返す。このリクエストのペイロードとしてdata を使用する。data が空の場合、request のペイロードが使用されます。

get()、post()、deleteResource()、observe()、discover()も参照

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

PUT メソッドを使用してrequest を送信し、新しいQCoapReply オブジェクトを返す。このリクエストのペイロードとしてdevice コンテンツを使用する。ヌル・デバイスは空のコンテンツとして扱われ、その場合request のペイロードが使用される。

注: この関数を呼び出す前に、デバイスがオープンされていて読み取り可能でなければならない。

これはオーバーロードされた関数である。

get()、post()、deleteResource()、observe()、discover()も参照のこと

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

url に PUT リクエストを送り、新しいQCoapReply オブジェクトを返す。このリクエストのペイロードとしてdata を使用する。

これはオーバーロードされた関数である。

get()、post()、deleteResource()、observe()、discover()も参照

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

このシグナルは、マルチキャストリクエストに対するユニキャストレスポンスが到着 したときに発行される。reply パラメータには受信したばかりの応答へのポインタが含まれ、message にはペイロードとメッセージの詳細が含まれ、sender には送信者アドレスが含まれる。

error()、QCoapReply::finished()、QCoapReply::error()も参照の こと。

void QCoapClient::setAckRandomFactor(double ackRandomFactor)

RFC 7252 - セクション4.2で定義されているACK_RANDOM_FACTOR の値をackRandomFactor に設定する。 この値は1以上でなければならない。デフォルトは1.5である。

setAckTimeout()も参照のこと

void QCoapClient::setAckTimeout(uint ackTimeout)

RFC 7252 - セクション4.2で定義されているACK_TIMEOUT の値をミリ秒単位でackTimeout に設定する。デフォルトは2000ミリ秒。

このタイムアウトは確認可能なメッセージにのみ適用される。信頼性のある送信の実際のタイムアウトは、ACK_TIMEOUTACK_TIMEOUT * ACK_RANDOM_FACTOR の間のランダムな値である。

setAckRandomFactor()も参照のこと

void QCoapClient::setBlockSize(quint16 blockSize)

リクエスト送信時とリプライ受信時にプロトコルが使用する最大ブロックサイズをblockSize に設定する。ブロックサイズは2のべき乗でなければならない。

void QCoapClient::setMaximumRetransmitCount(uint maximumRetransmitCount)

RFC 7252 - セクション4.2で定義されているMAX_RETRANSMIT の値をmaximumRetransmitCount に設定する。 この値は25以下でなければならない。デフォルトは4である。

void QCoapClient::setMaximumServerResponseDelay(uint responseDelay)

responseDelayMAX_SERVER_RESPONSE_DELAY の値をミリ秒単位で設定する。デフォルトは250秒である。

RFC 7390 - セクション2.5で定義されているように、MAX_SERVER_RESPONSE_DELAY は、クライアントがマルチキャストリクエストを送ることができるすべてのサーバーで予想される最大応答遅延である。

void QCoapClient::setMinimumTokenSize(int tokenSize)

トークンの最小サイズをバイト単位でtokenSize に設定する。セキュリティ上の理由から、少なくとも4バイトの長さのトークンを使用することを推奨する。このパラメータのデフォルト値は4バイトです。

void QCoapClient::setSecurityConfiguration(const QCoapSecurityConfiguration &configuration)

configuration のセキュリティ構成パラメータを設定する。QtCoap::NoSecurity モードを使用する場合、コンフィグレーションは無視される。

注意: このメソッドは、ハンドシェイクが始まる前に呼び出されなければならない。サーバとのセキュアな接続を確立した後でセキュリティ構成を変更する必要がある場合は、まずクライアントを切断する必要があります。

disconnect()も参照のこと

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

QUdpSocket ソケットoptionvalue に設定する。

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