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)

Signals

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 () 기능을 사용할 수 있습니다.

관찰 요청을 사용할 수도 있습니다. 위와 같이 사용하거나 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 과 같은 방식으로 사용할 수 있지만 리소스 목록도 포함합니다.

QCoapRequest, QCoapReply, QCoapResourceDiscoveryReply참조하세요 .

멤버 함수 문서

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

지정된 securityMode 에 대한 QCoapClient 객체를 생성하고 parent 을 부모 객체로 설정합니다.

securityMode 의 기본값은 보안을 비활성화하는 QtCoap::NoSecurity 입니다.

사용자 지정 전송을 사용하려면 하위 클래스 QCoapConnection을 사용하여 연결하고 인스턴스를 다른 생성자 중 하나에 전달합니다.

[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"))

이 함수는 과부하된 함수입니다.

주어진 port 에서 group 에 가입한 엔드포인트에서 사용 가능한 리소스를 검색합니다. 응답이 도착할 때마다 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)

이 신호는 오류가 발생할 때마다 전송됩니다. reply 매개 변수는 오류가 특정 QCoapReply 과 관련이 없는 경우 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 콘텐츠를 사용합니다. null 디바이스는 빈 콘텐츠로 처리됩니다.

참고: 이 함수를 호출하기 전에 디바이스가 열려 있고 읽을 수 있어야 합니다.

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 콘텐츠를 사용합니다. null 디바이스는 빈 콘텐츠로 처리됩니다.

참고: 이 함수를 호출하기 전에 디바이스가 열려 있고 읽을 수 있어야 합니다.

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)

MAX_SERVER_RESPONSE_DELAY 값을 밀리초 단위로 responseDelay 로 설정합니다. 기본값은 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.