QNetworkProxyQuery Class
QNetworkProxyQuery クラスは、ソケットのプロキシ設定を問い合わせるために使用します。詳細...
Header: | #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)
URLrequestUrl を持つ 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(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
を返します。
本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。