path: root/doc
diff options
authorJonas M. Gastal <>2012-01-11 10:48:08 -0200
committerQt by Nokia <>2012-01-12 14:38:55 +0100
commit1453f74cc5617894c98f09428c3062dfa448044e (patch)
tree236c5e5851a0f45cd119bf14195f87974af7faa3 /doc
parentad28d83f6debe164c1c9d5791520adf6fbd2ce51 (diff)
Make QFtp private.
All references to QFtp in documentation have been removed, QFtp's documentaiton was marked internal. The QFtp example was removed. Task-number: QTBUG-23199 Change-Id: Ifff83cac069fb350e8ebeae63e605850e65c0c30 Reviewed-by: Shane Kearns <>
Diffstat (limited to 'doc')
3 files changed, 5 insertions, 64 deletions
diff --git a/doc/src/core/threads.qdoc b/doc/src/core/threads.qdoc
index 2ed0330bdd..c38a7f3141 100644
--- a/doc/src/core/threads.qdoc
+++ b/doc/src/core/threads.qdoc
@@ -338,7 +338,7 @@
\section1 QObject Reentrancy
QObject is reentrant. Most of its non-GUI subclasses, such as
- QTimer, QTcpSocket, QUdpSocket, QFtp, and QProcess, are also
+ QTimer, QTcpSocket, QUdpSocket and QProcess, are also
reentrant, making it possible to use these classes from multiple
threads simultaneously. Note that these classes are designed to be
created and used from within a single thread; creating an object
diff --git a/doc/src/network/network-programming/qtnetwork.qdoc b/doc/src/network/network-programming/qtnetwork.qdoc
index b5725e4bdb..122aa5784b 100644
--- a/doc/src/network/network-programming/qtnetwork.qdoc
+++ b/doc/src/network/network-programming/qtnetwork.qdoc
@@ -40,8 +40,7 @@
\brief An Introduction to Network Programming with Qt
The QtNetwork module offers classes that allow you to write TCP/IP clients
- and servers. It offers classes such as QFtp that implement specific
- application-level protocols, lower-level classes such as QTcpSocket,
+ and servers. It offers lower-level classes such as QTcpSocket,
QTcpServer and QUdpSocket that represent low level network concepts,
and high level classes such as QNetworkRequest, QNetworkReply and
QNetworkAccessManager to perform network operations using common protocols.
@@ -92,64 +91,6 @@
Each application or library can create one or more instances of
QNetworkAccessManager to handle network communication.
- \section1 Writing FTP Clients with QFtp
- FTP (File Transfer Protocol) is a protocol used almost exclusively
- for browsing remote directories and for transferring files.
- \image httpstack.png FTP Client and Server
- FTP uses two network connections, one for sending
- commands and one for transferring data. The
- FTP protocol has a state and requires the client to send several
- commands before a file transfer takes place.
- FTP clients establish a connection
- and keeps it open throughout the session. In each session, multiple
- transfers can occur.
- The QFtp class provides client-side support for FTP.
- It has the following characteristics:
- \list
- \o \e{Non-blocking behavior.} QFtp is asynchronous.
- You can schedule a series of commands which are executed later,
- when control returns to Qt's event loop.
- \o \e{Command IDs.} Each command has a unique ID number that you
- can use to follow the execution of the command. For example, QFtp
- emits the \l{QFtp::commandStarted()}{commandStarted()} and
- \l{QFtp::commandFinished()}{commandFinished()} signal with the
- command ID for each command that is executed.
- \o \e{Data transfer progress indicators.} QFtp emits signals
- whenever data is transferred (QFtp::dataTransferProgress(),
- QNetworkReply::downloadProgress(), and
- QNetworkReply::uploadProgress()). You could connect these signals
- to QProgressBar::setProgress() or QProgressDialog::setProgress(),
- for example.
- \o \e{QIODevice support.} The class supports convenient
- uploading from and downloading to \l{QIODevice}s, in addition to a
- QByteArray-based API.
- \endlist
- There are two main ways of using QFtp. The most common
- approach is to keep track of the command IDs and follow the
- execution of every command by connecting to the appropriate
- signals. The other approach is to schedule all commands at once
- and only connect to the done() signal, which is emitted when all
- scheduled commands have been executed. The first approach
- requires more work, but it gives you more control over the
- execution of individual commands and allows you to initiate new
- commands based on the result of a previous command. It also
- enables you to provide detailed feedback to the user.
- The \l{network/qftp}{FTP} example
- illustrates how to write an FTP client.
- Writing your own FTP (or HTTP) server is possible using the
- lower-level classes QTcpSocket and QTcpServer.
\section1 Using TCP with QTcpSocket and QTcpServer
TCP (Transmission Control Protocol) is a low-level network
@@ -172,7 +113,7 @@
will then stop immediately.
QTcpSocket works asynchronously and emits signals to report status
- changes and errors, just like QNetworkAccessManager and QFtp. It
+ changes and errors, just like QNetworkAccessManager. It
relies on the event loop to detect incoming data and to
automatically flush outgoing data. You can write data to the
socket using QTcpSocket::write(), and read data using
diff --git a/doc/src/snippets/code/src_corelib_io_qurl.cpp b/doc/src/snippets/code/src_corelib_io_qurl.cpp
index 81c02cdada..98d8e37ebd 100644
--- a/doc/src/snippets/code/src_corelib_io_qurl.cpp
+++ b/doc/src/snippets/code/src_corelib_io_qurl.cpp
@@ -62,8 +62,8 @@ bool checkUrl(const QUrl &url) {
//! [3]
-QFtp ftp;
-ftp.connectToHost(, url.port(21));
+QTcpSocket sock;
+sock.connectToHost(, url.port(80));
//! [3]