QNetworkProxyQuery Class
QNetworkProxyQuery 클래스는 소켓의 프록시 설정을 조회하는 데 사용됩니다. 더 보기...
| 헤더: | #include <QNetworkProxyQuery> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Network) target_link_libraries(mytarget PRIVATE Qt6::Network) |
| qmake: | QT += network |
- 상속된 멤버를 포함한 모든 멤버 목록
- QNetworkProxyQuery는 암시적 공유 클래스의 일부입니다.
공개 유형
| enum | QueryType { TcpSocket, UdpSocket, SctpSocket, TcpServer, UrlRequest, SctpServer } |
공개 함수
| QNetworkProxyQuery() | |
| QNetworkProxyQuery(const QUrl &requestUrl, QNetworkProxyQuery::QueryType queryType = UrlRequest) | |
| QNetworkProxyQuery(quint16 bindPort, const QString &protocolTag = QString(), QNetworkProxyQuery::QueryType queryType = TcpServer) | |
| QNetworkProxyQuery(const QString &hostname, int port, const QString &protocolTag = QString(), QNetworkProxyQuery::QueryType queryType = TcpSocket) | |
| QNetworkProxyQuery(const QNetworkProxyQuery &other) | |
| ~QNetworkProxyQuery() | |
| int | localPort() const |
| QString | peerHostName() const |
| int | peerPort() const |
| QString | protocolTag() const |
| QNetworkProxyQuery::QueryType | queryType() const |
| void | setLocalPort(int port) |
| void | setPeerHostName(const QString &hostname) |
| void | setPeerPort(int port) |
| void | setProtocolTag(const QString &protocolTag) |
| void | setQueryType(QNetworkProxyQuery::QueryType type) |
| void | setUrl(const QUrl &url) |
| void | swap(QNetworkProxyQuery &other) |
| QUrl | url() const |
| bool | operator!=(const QNetworkProxyQuery &other) const |
| QNetworkProxyQuery & | operator=(const QNetworkProxyQuery &other) |
| bool | operator==(const QNetworkProxyQuery &other) const |
상세 설명
QNetworkProxyQuery는 생성 중인 소켓이나 전송 중인 요청에 대한 세부 정보를 보관합니다. 이 클래스는 QNetworkProxy 및 QNetworkProxyFactory 에서 사용되며, 애플리케이션이 쿼리의 세부 정보에 따라 사용될 프록시 서버를 보다 세밀하게 제어할 수 있도록 해줍니다. 이를 통해 애플리케이션은 예를 들어 프로토콜이나 대상 호스트 이름에 따라 서로 다른 설정을 적용할 수 있습니다.
QNetworkProxyQuery는 프록시 선택을 위해 다음 기준을 지원합니다:
- 쿼리 유형
- 사용할 로컬 포트 번호
- 목적지 호스트 이름
- 목적지 포트 번호
- "http" 또는 "ftp"와 같은 프로토콜 이름
- 요청되는 URL
대상 호스트 이름은 아웃바운드 연결 소켓의 경우 연결 대상 호스트를 의미합니다. 이는 QTcpSocket::connectToHost()에 전달되는 hostName 매개변이거나, QNetworkRequest 로 요청된 URL의 호스트 구성 요소입니다.
대상 포트 번호는 아웃바운드 소켓의 경우 연결을 시도하려는 요청된 포트이며, 로컬 포트 번호는 외부 연결을 시도하기 전에 소켓이 로컬에서 사용하려는 포트입니다. 대부분의 경우, 로컬 포트 번호는 리스닝 소켓(QTcpSocket)이나 데이터그램 소켓(QUdpSocket)에서만 사용됩니다.
프로토콜 이름은 시도되는 연결의 유형을 나타내는 임의의 문자열입니다. 예를 들어, “http”, “https”, “ftp”와 같이 URL의 스키마와 일치할 수 있습니다. 대부분의 경우 프로토콜에 따라 프록시 선택이 달라지지는 않지만, HTTP 기반 연결에는 캐싱 HTTP 프록시를 선택하고 그 외의 모든 연결에는 더 강력한 SOCKSv5 프록시를 선택하는 등 더 나은 선택을 할 수 있는 경우를 대비하여 이 정보가 제공됩니다.
일부 기준은 모든 쿼리 유형에서 의미가 없을 수도 있습니다. 다음 표에는 쿼리 유형에 따라 가장 일반적으로 사용되는 기준이 나열되어 있습니다.
| 쿼리 유형 | 설명 |
|---|---|
| TcpSocket | QTcpSocket 와 같이 원격 서버에 연결을 요청하는 일반 소켓입니다. 피어 호스트 이름과 피어 포트는 QTcpSocket::connectToHost()에 전달된 값과 일치합니다. 로컬 포트는 대개 -1이며, 이는 소켓이 사용할 포트에 대한 선호도가 없음을 나타냅니다. URL 구성 요소는 사용되지 않습니다. |
| UdpSocket | 송수신이 모두 가능한 데이터그램 기반 소켓입니다. 로컬 포트, 원격 호스트 또는 원격 포트 필드는 소켓의 특성에 따라 모두 사용되거나 사용되지 않을 수 있습니다. URL 구성 요소는 사용되지 않습니다. |
| SctpSocket | 원격 서버와의 연결을 요청하는 메시지 지향 소켓입니다. 피어 호스트 이름과 피어 포트는 QSctpSocket::connectToHost() 함수에 전달된 값과 일치합니다. 로컬 포트는 일반적으로 -1이며, 이는 소켓이 사용할 포트에 대한 선호도가 없음을 나타냅니다. URL 구성 요소는 사용되지 않습니다. |
| TcpServer | 특정 포트에서 수신 대기하며 네트워크로부터 들어오는 연결을 기다리는 수동형 서버 소켓입니다. 일반적으로 로컬 포트만 사용되지만, 특정 상황에서는(예: 연결이 예상되는 원격 호스트를 지정하기 위해) 원격 주소가 사용될 수도 있습니다. URL 구성 요소는 사용되지 않습니다. |
| UrlRequest | QNetworkAccessManager 과 같은 더 상위 수준의 요청입니다. 이러한 요청은 필연적으로 나가는 TCP 소켓을 사용하지만, 이 쿼리 유형은 URL 구성 요소에 더 자세한 정보가 포함되어 있음을 나타내기 위해 제공됩니다. 구현의 편의를 위해 URL의 호스트와 포트가 대상 주소로 설정됩니다. |
| SctpServer | SCTP 포트에서 수신 대기하며 네트워크로부터 들어오는 연결을 기다리는 수동 서버 소켓입니다. 일반적으로 로컬 포트만 사용되지만, 특정 상황(예: 연결이 예상되는 원격 호스트를 나타내는 경우)에서는 원격 주소가 사용될 수 있습니다. URL 구성 요소는 사용되지 않습니다. |
어떤 기준이든 누락되거나 알려지지 않은 경우(호스트명이나 프로토콜 이름의 경우 빈 QString, 포트 번호의 경우 -1)가 있을 수 있다는 점에 유의해야 합니다. 이러한 상황이 발생하면, 쿼리를 실행하는 함수는 가능한 한 정확한 추정을 하거나 구현에서 정의한 기본값을 적용해야 합니다.
QNetworkProxy, QNetworkProxyFactory, QNetworkAccessManager 및 QAbstractSocket::setProxy()도 참조하십시오 .
멤버 유형 문서
enum QNetworkProxyQuery::QueryType
QNetworkProxyQuery 쿼리 중 하나의 유형을 설명합니다.
| 상수 | 값 | 설명 |
|---|---|---|
QNetworkProxyQuery::TcpSocket | 0 | 일반적인 발신 TCP 소켓 |
QNetworkProxyQuery::UdpSocket | 1 | 다중 목적지로 전송할 수 있는 데이터그램 기반 UDP 소켓 |
QNetworkProxyQuery::SctpSocket | 2 | 메시지 지향형 발신 SCTP 소켓 |
QNetworkProxyQuery::TcpServer | 100 | 네트워크에서 들어오는 연결을 수신 대기하는 TCP 서버 |
QNetworkProxyQuery::UrlRequest | 101 | URL 로딩이 포함된 보다 복잡한 요청 |
QNetworkProxyQuery::SctpServer | 102 | 네트워크로부터의 수신 연결을 수신 대기하는 SCTP 서버 |
queryType() 및 setQueryType()도 참조하십시오 .
멤버 함수 문서
QNetworkProxyQuery::QNetworkProxyQuery()
기본 QNetworkProxyQuery 객체를 생성합니다. 기본적으로 쿼리 유형은 QNetworkProxyQuery::TcpSocket 입니다.
[explicit] QNetworkProxyQuery::QNetworkProxyQuery(const QUrl &requestUrl, QNetworkProxyQuery::QueryType queryType = UrlRequest)
URL requestUrl 을 사용하여 QNetworkProxyQuery 객체를 생성하고, 쿼리 유형을 queryType 로 설정합니다.
protocolTag(), peerHostName(), peerPort()도 참조하십시오 .
[explicit] QNetworkProxyQuery::QNetworkProxyQuery(quint16 bindPort, const QString &protocolTag = QString(), QNetworkProxyQuery::QueryType queryType = TcpServer)
queryType 유형의 QNetworkProxyQuery 객체를 생성하고 프로토콜 태그를 protocolTag 로 설정합니다. 이 생성자는 로컬 포트 번호를 bindPort 로 설정하므로 QNetworkProxyQuery::TcpSocket 쿼리에 적합합니다.
bindPort 는 요청된 정확한 포트 번호를 나타내기 위해 quint16 유형임을 유의하십시오. 이 컨텍스트에서는 -1(알 수 없음) 값을 사용할 수 없습니다.
localPort()도 참조하십시오 .
QNetworkProxyQuery::QNetworkProxyQuery(const QString &hostname, int port, const QString &protocolTag = QString(), QNetworkProxyQuery::QueryType queryType = TcpSocket)
queryType 유형의 QNetworkProxyQuery 객체를 생성하고, 프로토콜 태그를 protocolTag 로 설정합니다. 이 생성자는 피어 호스트 이름을 hostname 로, 피어의 포트 번호를 port 로 설정하므로 QNetworkProxyQuery::TcpSocket 쿼리에 적합합니다.
QNetworkProxyQuery::QNetworkProxyQuery(const QNetworkProxyQuery &other)
other 의 복사본인 QNetworkProxyQuery 객체를 생성합니다.
[noexcept] QNetworkProxyQuery::~QNetworkProxyQuery()
이 QNetworkProxyQuery 객체를 삭제합니다.
int QNetworkProxyQuery::localPort() const
원격 서버로부터 들어오는 패킷을 수신할 소켓의 포트 번호를 반환하며, 포트를 알 수 없는 경우에는 -1을 반환합니다.
peerPort(), peerHostName() 및 setLocalPort()도 참조하십시오 .
QString QNetworkProxyQuery::peerHostName() const
요청된 발신 연결의 호스트 이름이나 IP 주소를 반환하며, 원격 호스트 이름을 알 수 없는 경우에는 빈 문자열을 반환합니다.
쿼리 유형이 QNetworkProxyQuery::UrlRequest 인 경우, 이 함수는 요청된 URL의 호스트 구성 요소를 반환합니다.
peerPort(), localPort() 및 setPeerHostName()함수도 참조하십시오 .
int QNetworkProxyQuery::peerPort() const
발신 요청의 포트 번호를 반환하거나, 포트 번호를 알 수 없는 경우 -1을 반환합니다.
쿼리 유형이 QNetworkProxyQuery::UrlRequest 인 경우, 이 함수는 요청 중인 URL의 포트 번호를 반환합니다. 일반적으로 프레임워크는 기본값을 사용하여 포트 번호를 자동으로 채웁니다.
peerHostName(), localPort(), setPeerPort()도 참조하십시오 .
QString QNetworkProxyQuery::protocolTag() const
이 QNetworkProxyQuery 객체의 프로토콜 태그를 반환하거나, 프로토콜 태그를 알 수 없는 경우에는 빈 QString 을 반환합니다.
QNetworkProxyQuery::UrlRequest 유형의 쿼리의 경우, 이 함수는 URL의 scheme 구성 요소의 값을 반환합니다.
setProtocolTag() 및 url()도 참조하십시오 .
QNetworkProxyQuery::QueryType QNetworkProxyQuery::queryType() const
쿼리 유형을 반환합니다.
setQueryType()도 참조하십시오 .
void QNetworkProxyQuery::setLocalPort(int port)
소켓이 원격 서버에서 port 으로 전송되는 수신 패킷을 수신하기 위해 로컬에서 사용하려는 포트 번호를 설정합니다. 로컬 포트는 주로 QNetworkProxyQuery::TcpServer 및 QNetworkProxyQuery::UdpSocket 쿼리 유형과 함께 사용됩니다.
유효한 값은 0부터 65535까지이며(0은 모든 포트 번호를 허용함을 의미함), -1은 로컬 포트 번호를 알 수 없거나 적용되지 않음을 의미합니다.
특정 상황에서, 특수 프로토콜의 경우 로컬 포트 번호를 QNetworkProxyQuery::TcpSocket 유형의 쿼리와 함께 사용할 수도 있습니다. 이 경우 소켓은 원격 호스트에 연결할 때 port 포트 번호를 사용하고자 함을 나타냅니다.
localPort(), setPeerPort(), setPeerHostName()도 참조하십시오 .
void QNetworkProxyQuery::setPeerHostName(const QString &hostname)
요청된 발신 연결의 호스트 이름을 hostname 로 설정합니다. 호스트 이름을 비워두면 원격 호스트를 알 수 없음을 나타낼 수 있습니다.
또한 QNetworkProxyQuery::UdpSocket 또는 QNetworkProxyQuery::TcpServer 쿼리 유형의 경우, 피어 호스트 이름을 사용하여 수신 연결의 예상 소스 주소를 나타낼 수도 있습니다.
peerHostName(), setPeerPort(), setLocalPort()도 참조하십시오 .
void QNetworkProxyQuery::setPeerPort(int port)
발신 연결에 대한 요청 포트 번호를 port 로 설정합니다. 유효한 값은 1에서 65535까지이며, 원격 포트 번호를 알 수 없는 경우 -1을 지정할 수 있습니다.
또한, QNetworkProxyQuery::UdpSocket 또는 QNetworkProxyQuery::TcpServer 쿼리 유형의 경우, 피어 포트 번호를 사용하여 들어오는 연결의 예상 포트 번호를 지정할 수도 있습니다.
peerPort(), setPeerHostName(), setLocalPort()도 참조하십시오 .
void QNetworkProxyQuery::setProtocolTag(const QString &protocolTag)
이 QNetworkProxyQuery 객체의 프로토콜 태그를 protocolTag 로 설정합니다.
프로토콜 태그는 소켓을 통해 어떤 프로토콜이 통신되고 있는지를 나타내는 임의의 문자열로, "http", "xmpp", "telnet" 등이 있습니다. 프로토콜 태그는 백엔드에서 해당 프로토콜에 더 특화된 요청을 반환하는 데 사용됩니다. 예를 들어, HTTP 연결의 경우 캐싱 HTTP 프록시 서버를 사용할 수 있는 반면, 다른 모든 연결은 더 강력한 SOCKSv5 프록시 서버를 사용할 수 있습니다.
protocolTag()도 참조하십시오 .
void QNetworkProxyQuery::setQueryType(QNetworkProxyQuery::QueryType type)
이 객체의 쿼리 유형을 ` type`로 설정합니다.
queryType()도 참조하십시오 .
void QNetworkProxyQuery::setUrl(const QUrl &url)
이 QNetworkProxyQuery 객체의 URL 구성 요소를 url 으로 설정합니다. URL을 설정하면 프로토콜 태그, 원격 호스트 이름 및 포트 번호도 함께 설정됩니다. 이는 사용할 프록시 서버를 결정하는 코드의 구현을 용이하게 하기 위한 것입니다.
url(), peerHostName() 및 peerPort()도 참조하십시오 .
[noexcept] void QNetworkProxyQuery::swap(QNetworkProxyQuery &other)
이 네트워크 프록시 쿼리 인스턴스를 other 로 교체합니다. 이 작업은 매우 빠르며 실패하는 경우가 전혀 없습니다.
QUrl QNetworkProxyQuery::url() const
QNetworkProxyQuery::UrlRequest 유형의 쿼리가 있는 경우, 이 QNetworkProxyQuery 객체의 URL 구성 요소를 반환합니다.
setUrl()도 참조하십시오 .
bool QNetworkProxyQuery::operator!=(const QNetworkProxyQuery &other) const
이 QNetworkProxyQuery 객체가 other 과 동일한 데이터를 포함하지 않는 경우, true 를 반환합니다.
QNetworkProxyQuery &QNetworkProxyQuery::operator=(const QNetworkProxyQuery &other)
other 의 내용을 복사합니다.
bool QNetworkProxyQuery::operator==(const QNetworkProxyQuery &other) const
이 QNetworkProxyQuery 객체가 other 과 동일한 데이터를 포함하고 있는 경우, true 를 반환합니다.
© 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.