Qt:Документация 4.3.2/qnetworkproxy

Материал из Wiki.crossplatform.ru

Версия от 10:52, 12 января 2009; Root (Обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск
40px Внимание: Актуальная версия перевода документации находится здесь

__NOTOC__

Image:qt-logo.png

Главная · Все классы · Основные классы · Классы по группам · Модули · Функции

Image:trolltech-logo.png

Содержание

[править] QNetworkProxy Class Reference
[модуль QtNetwork ]

The QNetworkProxy class provides a network layer proxy. Далее...

 #include <QNetworkProxy>

Примечание: все функции в этом классе реентерабельны.

This class was introduced in Qt 4.1.

[править] Открытые типы

  • enum ProxyType { DefaultProxy, Socks5Proxy, NoProxy, HttpProxy }

[править] Открытые функции

[править] Статические открытые члены


[править] Подробное описание

The QNetworkProxy class provides a network layer proxy.

QNetworkProxy provides the method for configuring network layer proxy support to the Qt network classes. The currently supported classes are QAbstractSocket, QTcpSocket, QUdpSocket, QTcpServer, QHttp and QFtp. The proxy support is designed to be as transparent as possible. This means that existing network-enabled applications that you have written should automatically support network proxy using the following code.

 QNetworkProxy proxy;
 proxy.setType(QNetworkProxy::Socks5Proxy);
 proxy.setHostName("proxy.example.com");
 proxy.setPort(1080);
 proxy.setUser("username");
 proxy.setPassword("password");
 QNetworkProxy::setApplicationProxy(proxy);

An alternative to setting an application wide proxy is to specify the proxy for individual sockets using QAbstractSocket::setProxy() and QTcpServer::setProxy(). In this way, it is possible to disable the use of a proxy for specific sockets using the following code:

 serverSocket->setProxy(QNetworkProxy::NoProxy);

Network proxy is not used if the address used in connectToHost(), bind() or listen() is equivalent to QHostAddress::LocalHost or QHostAddress::LocalHostIPv6.

Each type of proxy support has certain restrictions associated with it. You should read the ProxyType documentation carefully before selecting a proxy type to use.

[править] SOCKS5

The SOCKS5 support in Qt 4 is based on RFC 1928 and RFC 1929. The supported authentication methods are no authentication and username/password authentication. Both IPv4 and IPv6 are supported, but domain name resolution via the SOCKS server is not supported; i.e. all domain names are resolved locally. There are several things to remember when using SOCKS5 with QUdpSocket and QTcpServer:

With QUdpSocket, a call to bind() may fail with a timeout error. If a port number other than 0 is passed to bind(), it is not guaranteed that it is the specified port that will be used. Use localPort() and localAddress() to get the actual address and port number in use. Because proxied UDP goes through two UDP connections, it is more likely that packets will be dropped.

With QTcpServer a call to listen() may fail with a timeout error. If a port number other than 0 is passed to listen(), then it is not guaranteed that it is the specified port that will be used. Use serverPort() and serverAddress() to get the actual address and port used to listen for connections. SOCKS5 only supports one accepted connection per call to listen(), and each call is likely to result in a different serverPort() being used.

See also QAbstractSocket and QTcpServer.


[править] Описание типов

[править]
enum QNetworkProxy::ProxyType

This enum describes the types of network proxying provided in Qt.


Константа Значение Описание
QNetworkProxy::DefaultProxy 0 Proxy is determined based on the application proxy set using setApplicationProxy()
QNetworkProxy::Socks5Proxy 1 Socks5 proxying is used
QNetworkProxy::NoProxy 2 No proxying is used
QNetworkProxy::HttpProxy 3 Http proxying is used

While Socks5 proxying works for both Tcp and Udp sockets, Http proxying is limited to Tcp connections. Http proxying also doesn't support binding sockets.

See also setType() and type().


[править] Описание функций-членов

[править]
QNetworkProxy::QNetworkProxy ()

Constructs a QNetworkProxy with DefaultProxy type; the proxy type is determined by applicationProxy(), which defaults to NoProxy.

See also setType() and setApplicationProxy().

[править]
QNetworkProxy::QNetworkProxy ( ProxyType type, const QString & hostName = QString(), quint16 port = 0, const QString & user = QString(), const QString & password = QString() )

Constructs a QNetworkProxy with type, hostName, port, user and password.

[править]
QNetworkProxy::QNetworkProxy ( const QNetworkProxy & other )

Создаёт копию other.

[править]
QNetworkProxy::~QNetworkProxy ()

Destroys the QNetworkProxy object.

[править]
QNetworkProxy QNetworkProxy::applicationProxy () [static]

Returns the application level network proxying.

If a QAbstractSocket or QTcpSocket has the QNetworkProxy::DefaultProxy type, then the QNetworkProxy returned by this function is used.

See also setApplicationProxy(), QAbstractSocket::proxy(), and QTcpServer::proxy().

[править]
QString QNetworkProxy::hostName () const

Returns the host name of the proxy host.

See also setHostName(), setPort(), and port().

[править]
QString QNetworkProxy::password () const

Returns the password used for authentication.

See also user(), setPassword(), and setUser().

[править]
quint16 QNetworkProxy::port () const

Returns the port of the proxy host.

See also setHostName(), setPort(), and hostName().

[править]
void QNetworkProxy::setApplicationProxy ( const QNetworkProxy & networkProxy ) [static]

Sets the application level network proxying to be networkProxy.

If a QAbstractSocket or QTcpSocket has the QNetworkProxy::DefaultProxy type, then the QNetworkProxy set with this function is used.

See also applicationProxy(), QAbstractSocket::setProxy(), and QTcpServer::setProxy().

[править]
void QNetworkProxy::setHostName ( const QString & hostName )

Sets the host name of the proxy host to be hostName.

See also hostName(), setPort(), and port().

[править]
void QNetworkProxy::setPassword ( const QString & password )

Sets the password for proxy authentication to be password.

See also user(), setUser(), and password().

[править]
void QNetworkProxy::setPort ( quint16 port )

Sets the port of the proxy host to be port.

See also hostName(), setHostName(), and port().

[править]
void QNetworkProxy::setType ( QNetworkProxy::ProxyType type )

Sets the proxy type for this instance to be type.

See also type().

[править]
void QNetworkProxy::setUser ( const QString & user )

Sets the user name for proxy authentication to be user.

See also user(), setPassword(), and password().

[править]
QNetworkProxy::ProxyType QNetworkProxy::type () const

Returns the proxy type for this instance.

See also setType().

[править]
QString QNetworkProxy::user () const

Returns the user name used for authentication.

See also setUser(), setPassword(), and password().

[править]
QNetworkProxy & QNetworkProxy::operator= ( const QNetworkProxy & other )

Assigns the value of the network proxy other to this network proxy.

Эта функция была введена в Qt 4.2.



Copyright © 2007 Trolltech Trademarks
Qt 4.3.2