QNetworkProxyQuery Class

QNetworkProxyQuery 클래스는 소켓의 프록시 설정을 쿼리하는 데 사용됩니다. 더 보기...

헤더: #include <QNetworkProxyQuery>
CMake: find_package(Qt6 REQUIRED COMPONENTS Network)
target_link_libraries(mytarget PRIVATE Qt6::Network)
qmake: QT += network

공용 유형

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는 생성 중인 소켓 또는 요청 중인 소켓의 세부 정보를 보유합니다. 이 함수는 QNetworkProxyQNetworkProxyFactory 에서 사용되어 애플리케이션이 쿼리의 세부 사항에 따라 사용되는 프록시 서버를 보다 세밀하게 제어할 수 있도록 합니다. 예를 들어 애플리케이션이 프로토콜이나 대상 호스트 이름에 따라 다른 설정을 적용할 수 있습니다.

QNetworkProxyQuery는 프록시 선택에 대해 다음과 같은 기준을 지원합니다:

  • 쿼리 유형
  • 사용할 로컬 포트 번호
  • 대상 호스트 이름
  • 대상 포트 번호
  • 프로토콜 이름(예: "http" 또는 "ftp")
  • 요청 중인 URL

대상 호스트 이름은 나가는 연결 소켓의 경우 연결에 있는 호스트입니다. QTcpSocket::connectToHost ()에 전달된 hostName 매개변수이거나 QNetworkRequest 로 요청된 URL의 호스트 구성 요소입니다.

대상 포트 번호는 나가는 소켓의 경우 연결할 요청된 포트이고, 로컬 포트 번호는 외부 연결을 시도하기 전에 소켓이 로컬에서 사용하려는 포트입니다. 대부분의 경우 로컬 포트 번호는 수신 소켓(QTcpSocket) 또는 데이터그램 소켓(QUdpSocket)에서만 사용됩니다.

프로토콜 이름은 시도 중인 연결 유형을 나타내는 임의의 문자열입니다. 예를 들어 "http", "https", "ftp"와 같은 URL의 체계와 일치할 수 있습니다. 대부분의 경우 프록시 선택은 프로토콜에 따라 변경되지 않지만, HTTP 기반 연결에는 캐싱 HTTP 프록시를 선택하고 다른 모든 연결에는 더 강력한 SOCKSv5 프록시를 선택하는 등 더 나은 선택이 가능한 경우에 대비하여 이 정보를 제공합니다.

일부 기준은 모든 쿼리 유형에 적합하지 않을 수 있습니다. 다음 표에는 쿼리 유형에 따라 가장 일반적으로 사용되는 기준이 나열되어 있습니다.

쿼리 유형설명
TcpSocketQTcpSocket 과 같이 원격 서버에 대한 연결을 요청하는 일반 소켓. 피어 호스트 이름과 피어 포트가 QTcpSocket::connectToHost()에 전달된 값과 일치합니다. 로컬 포트는 일반적으로 -1이며, 소켓에 사용할 포트에 대한 기본 설정이 없음을 나타냅니다. URL 구성 요소는 사용되지 않습니다.
UdpSocket데이터그램 기반 소켓은 송신과 수신이 모두 가능합니다. 소켓의 특성에 따라 로컬 포트, 원격 호스트 또는 원격 포트 필드를 모두 사용하거나 사용하지 않을 수 있습니다. URL 구성 요소는 사용되지 않습니다.
SctpSocket원격 서버에 대한 연결을 요청하는 메시지 지향 소켓입니다. 피어 호스트 이름과 피어 포트는 QSctpSocket::connectToHost()에 전달된 값과 일치합니다. 로컬 포트는 일반적으로 -1이며, 소켓에 사용할 포트에 대한 기본 설정이 없음을 나타냅니다. URL 구성 요소는 사용되지 않습니다.
TcpServer포트에서 수신 대기하고 네트워크에서 들어오는 연결을 기다리는 패시브 서버 소켓입니다. 일반적으로 로컬 포트만 사용되지만 연결이 예상되는 원격 호스트를 표시하는 등 특정 상황에서 원격 주소를 사용할 수 있습니다. URL 구성 요소는 사용되지 않습니다.
UrlRequestQNetworkAccessManager 에서 오는 요청과 같은 보다 상위 수준의 요청은 필연적으로 나가는 TCP 소켓을 사용하지만, 이 쿼리 유형은 URL 구성 요소에 더 자세한 정보가 있음을 나타내기 위해 제공됩니다. 구현하기 쉽도록 URL의 호스트와 포트가 대상 주소로 설정됩니다.
SctpServer수동 서버 소켓은 SCTP 포트에서 수신 대기하고 네트워크에서 들어오는 연결을 기다립니다. 일반적으로 로컬 포트만 사용되지만 특정 상황에서는 원격 주소를 사용하여 연결이 예상되는 원격 호스트를 표시할 수 있습니다. URL 구성 요소는 사용되지 않습니다.

기준 중 하나라도 누락되거나 알 수 없는 경우(호스트 이름 또는 프로토콜 이름의 경우 빈 QString, 포트 번호의 경우 -1)에 유의해야 합니다. 이 경우 쿼리를 실행하는 함수는 최선의 추측을 하거나 구현에서 정의한 기본값을 적용해야 합니다.

QNetworkProxy, QNetworkProxyFactory, QNetworkAccessManager, QAbstractSocket::setProxy()도 참조하세요 .

멤버 유형 문서

enum QNetworkProxyQuery::QueryType

하나의 QNetworkProxyQuery 쿼리 유형을 설명합니다.

Constant설명
QNetworkProxyQuery::TcpSocket0일반 발신 TCP 소켓
QNetworkProxyQuery::UdpSocket1여러 대상에 보낼 수 있는 데이터그램 기반 UDP 소켓
QNetworkProxyQuery::SctpSocket2메시지 지향, 발신 SCTP 소켓
QNetworkProxyQuery::TcpServer100네트워크에서 들어오는 연결을 수신 대기하는 TCP 서버
QNetworkProxyQuery::UrlRequest101URL 로딩을 포함하는 보다 복잡한 요청
QNetworkProxyQuery::SctpServer102네트워크에서 들어오는 연결을 수신 대기하는 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의 스키마 구성 요소 값을 반환합니다.

setProtocolTag() 및 url()도 참조하세요 .

QNetworkProxyQuery::QueryType QNetworkProxyQuery::queryType() const

쿼리 유형을 반환합니다.

setQueryType()도 참조하세요 .

void QNetworkProxyQuery::setLocalPort(int port)

원격 서버에서 들어오는 패킷을 받아들이기 위해 소켓이 로컬로 사용할 포트 번호를 port 로 설정합니다. 로컬 포트는 QNetworkProxyQuery::TcpServerQNetworkProxyQuery::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 를 반환합니다.

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