このページでは

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 は、作成中のソケットまたは送信中のリクエストの詳細を保持します。これは、QNetworkProxy およびQNetworkProxyFactory によって使用され、アプリケーションがクエリの詳細に応じて、使用するプロキシサーバーをよりきめ細かく制御できるようにします。これにより、アプリケーションは、たとえばプロトコルや宛先のホスト名に応じて、異なる設定を適用することができます。

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 のホストとポートは宛先アドレスとして設定されます。
SctpServerSCTPポートでリスニングし、ネットワークからの着信接続を待機するパッシブサーバーソケット。通常はローカルポートのみが使用されますが、特定の状況下では、例えばどのリモートホストからの接続を期待しているかを示すために、リモートアドレスが使用される場合があります。URLコンポーネントは使用されません。

なお、いずれかの基準が欠落していたり不明であったりする可能性があることに留意すべきである(ホスト名やプロトコル名として空のQString 、ポート番号として -1 など)。その場合は、クエリを実行する関数は最善の推測を行うか、実装で定義されたデフォルト値を適用すべきである。

QNetworkProxy 、QNetworkProxyFactory 、QNetworkAccessManager 、およびQAbstractSocket::setProxy()も参照してください 。

メンバ型のドキュメント

enum QNetworkProxyQuery::QueryType

QNetworkProxyQuery クエリの1つのタイプについて説明します。

定数値説明
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::TcpServer およびQNetworkProxyQuery::UdpSocket のクエリタイプで使用されます。

有効な値は 0 から 65535 まで(0 はどのポート番号でも受け入れることを示す)または -1 です。-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.