Qt Jambi Home

com.trolltech.qt.network
Class QNetworkProxy

java.lang.Object
  extended by com.trolltech.qt.QSignalEmitter
      extended by com.trolltech.qt.QtJambiObject
          extended by com.trolltech.qt.network.QNetworkProxy
All Implemented Interfaces:
QtJambiInterface

public class QNetworkProxy
extends QtJambiObject

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, QTcpServer

Nested Class Summary
static class QNetworkProxy.ProxyType
          This enum describes the types of network proxying provided in Qt.
 
Nested classes/interfaces inherited from class com.trolltech.qt.QSignalEmitter
QSignalEmitter.Signal0, QSignalEmitter.Signal1<A>, QSignalEmitter.Signal2<A,B>, QSignalEmitter.Signal3<A,B,C>, QSignalEmitter.Signal4<A,B,C,D>, QSignalEmitter.Signal5<A,B,C,D,E>, QSignalEmitter.Signal6<A,B,C,D,E,F>, QSignalEmitter.Signal7<A,B,C,D,E,F,G>, QSignalEmitter.Signal8<A,B,C,D,E,F,G,H>, QSignalEmitter.Signal9<A,B,C,D,E,F,G,H,I>
 
Constructor Summary
QNetworkProxy()
          Constructs a QNetworkProxy with DefaultProxy type; the proxy type is determined by applicationProxy, which defaults to NoProxy.
QNetworkProxy(QNetworkProxy.ProxyType type, java.lang.String host, int port)
          This is an overloaded constructor provided for convenience.
QNetworkProxy(QNetworkProxy.ProxyType type, java.lang.String host, int port, java.lang.String username)
          This is an overloaded constructor provided for convenience.
QNetworkProxy(QNetworkProxy.ProxyType type, java.lang.String host, int port, java.lang.String username, java.lang.String password)
          Constructs a QNetworkProxy with type, hostName, port, user and password.
QNetworkProxy(QNetworkProxy other)
          Constructs a copy of other.
 
Method Summary
static QNetworkProxy applicationProxy()
          Returns the application level network proxying.
static QNetworkProxy fromNativePointer(QNativePointer nativePointer)
          This function returns the QNetworkProxy instance pointed to by nativePointer
 java.lang.String hostName()
          Returns the host name of the proxy host.
static QNativePointer nativePointerArray(QNetworkProxy[] array)
          This function returns a QNativePointer that is pointing to the specified QNetworkProxy array.
 java.lang.String password()
          Returns the password used for authentication.
 int port()
          Returns the port of this proxy.
static void setApplicationProxy(QNetworkProxy proxy)
          Sets the application level network proxying to be proxy.
 void setHostName(java.lang.String hostName)
          Sets the host name of the proxy host to be hostName.
 void setPassword(java.lang.String password)
          Sets the password for proxy authentication to be password.
 void setPort(int port)
          Sets the port of the proxy host to be port.
 void setType(QNetworkProxy.ProxyType type)
          Sets the proxy type for this instance to be type.
 void setUser(java.lang.String userName)
          Sets the user name for proxy authentication to be userName.
 QNetworkProxy.ProxyType type()
          Returns the proxy type for this instance.
 java.lang.String user()
          Returns the user name used for authentication.
 
Methods inherited from class com.trolltech.qt.QtJambiObject
dispose, disposed, finalize, reassignNativeResources, tr, tr, tr
 
Methods inherited from class com.trolltech.qt.QSignalEmitter
blockSignals, disconnect, disconnect, signalsBlocked, signalSender, thread
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.trolltech.qt.QtJambiInterface
disableGarbageCollection, nativeId, nativePointer, reenableGarbageCollection, setJavaOwnership
 

Constructor Detail

QNetworkProxy

public QNetworkProxy()

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

See Also:
setType, setApplicationProxy

QNetworkProxy

public QNetworkProxy(QNetworkProxy other)

Constructs a copy of other.


QNetworkProxy

public QNetworkProxy(QNetworkProxy.ProxyType type,
                     java.lang.String host,
                     int port)
This is an overloaded constructor provided for convenience.


QNetworkProxy

public QNetworkProxy(QNetworkProxy.ProxyType type,
                     java.lang.String host,
                     int port,
                     java.lang.String username)
This is an overloaded constructor provided for convenience.


QNetworkProxy

public QNetworkProxy(QNetworkProxy.ProxyType type,
                     java.lang.String host,
                     int port,
                     java.lang.String username,
                     java.lang.String password)
Constructs a QNetworkProxy with type, hostName, port, user and password.

Method Detail

hostName

public final java.lang.String hostName()

Returns the host name of the proxy host.

See Also:
setHostName, setPort, port

password

public final java.lang.String password()

Returns the password used for authentication.

See Also:
user, setPassword, setUser

setHostName

public final void setHostName(java.lang.String hostName)

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

See Also:
hostName, setPort, port

setPassword

public final void setPassword(java.lang.String password)

Sets the password for proxy authentication to be password.

See Also:
user, setUser, password

setType

public final void setType(QNetworkProxy.ProxyType type)

Sets the proxy type for this instance to be type.

See Also:
type

setUser

public final void setUser(java.lang.String userName)

Sets the user name for proxy authentication to be userName.

See Also:
user, setPassword, password

type

public final QNetworkProxy.ProxyType type()

Returns the proxy type for this instance.

See Also:
setType

user

public final java.lang.String user()

Returns the user name used for authentication.

See Also:
setUser, setPassword, password

applicationProxy

public static QNetworkProxy applicationProxy()

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, QTcpServer::proxy

setApplicationProxy

public static void setApplicationProxy(QNetworkProxy proxy)

Sets the application level network proxying to be proxy.

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

See Also:
applicationProxy, QAbstractSocket::setProxy, QTcpServer::setProxy

fromNativePointer

public static QNetworkProxy fromNativePointer(QNativePointer nativePointer)
This function returns the QNetworkProxy instance pointed to by nativePointer

Parameters:
nativePointer - the QNativePointer of which object should be returned.

nativePointerArray

public static QNativePointer nativePointerArray(QNetworkProxy[] array)
This function returns a QNativePointer that is pointing to the specified QNetworkProxy array.

Parameters:
array - the array that the returned pointer will point to.
Returns:
a QNativePointer that is pointing to the specified array.

setPort

public final void setPort(int port)
Sets the port of the proxy host to be port.


port

public final int port()
Returns the port of this proxy.


Qt Jambi Home