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 は、ソケットの作成やリクエストの詳細を保持する。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)
QNetworkProxyQuery を URLrequestUrl で構築し、クエリ・タイプを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(unknown)は使用できません。
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
を返す。
© 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.