Qtopia Home - Classes - Hierachy - Annotated - Functions - Licenses - Reference |
|
The QSocket class provides a buffered TCP connection. More...
#include <qsocket.h>
Inherits QObject and QIODevice.
Inherited by QtSSLSocket.
It provides a totally non-blocking QIODevice, and modifies and extends the API of QIODevice with socket-specific code.
The functions you're likely to call most are connectToHost(), bytesAvailable(), canReadLine() and the ones it inherits from QIODevice.
connectToHost() is the most-used function. As its name implies, it opens a connection to a named host.
Most network protocols are either packet-oriented or line-oriented. canReadLine() indicates whether a connection contains an entire unread line or not, and bytesAvailable() returns the number of bytes available for reading.
The signals error(), connected(), readyRead() and connectionClosed() inform you of the progress of the connection. There are also some less commonly used signals. hostFound() is emitted when connectToHost() has finished its DNS lookup and is starting its TCP connection. delayedCloseFinished() is emitted when close() succeeds. bytesWritten() is emitted when QSocket moves data from its "to be written" queue into the TCP implementation.
There are several access functions for the socket: state() returns whether the object is idle, is doing a DNS lookup, is connecting, has an operational connection, etc. address() and port() return the IP address and port used for the connection, peerAddress() and peerPort() return the IP address and port used by the peer, and peerName() returns the name of the peer (normally the name that was passed to connectToHost()). socket() returns a pointer to the QSocketDevice used for this socket.
QSocket inherits QIODevice, and reimplements some of the functions. In general, you can treat it as a QIODevice for writing, and mostly also for reading. The match isn't perfect, since the QIODevice API is designed for devices that are controlled by the same machine, and an asynchronous peer-to-peer network connection isn't quite like that. For example, there is nothing that matches QIODevice::size() exactly. The documentation for each of open(), close(), flush(), size(), at(), atEnd(), readBlock(), writeBlock(), getch(), putch(), ungetch() and readLine() describe the differences in detail.
See also QSocketDevice, QHostAddress, and QSocketNotifier.
This enum specifies the possible errors:
This enum defines the connection states:
See also close().
Reimplemented from QIODevice.
Reimplemented from QIODevice.
Reimplemented from QIODevice.
See also bytesToWrite().
See also bytesAvailable().
This signal is emitted when data actually has been written to the network. The nbytes parameter says how many bytes were written.
The bytesToWrite() function is often used in the same context, and it tells how many buffered bytes there are left to write.
See also writeBlock() and bytesToWrite().
See also setMode() and readLine().
The mode is set to QSocket::Binary and the read buffer is cleared.
If the output buffer is empty, the state is set to QSocket::Idle and the connection is terminated immediately. If the output buffer still contains data to be written, QSocket goes into the QSocket::Closing state and the rest of the data will be written. When all of the outgoing data have been written, the state is set to QSocket::Idle and the connection is terminated. At this point, the delayedCloseFinished() signal is emitted.
See also state(), setMode(), and bytesToWrite().
Reimplemented from QIODevice.
Reimplemented in QtSSLSocket.
Any connection or pending connection is closed immediately, and QSocket goes into HostLookup state. When the lookup succeeds, it emits hostFound(), starts a TCP connection and goes into Connecting state. Finally, when the connection succeeds, it emits connected() and goes into Connection state. If there is an error at any point, it emits error().
See also state().
Reimplemented in QtSSLSocket.
This signal is emitted after connectToHost() has been called and a connection has been successfully established.
See also connectToHost() and connectionClosed().
This signal is emitted when the other end has closed the connection. The read buffers may contain buffered input data which you can read after the connection was closed.
See also connectToHost() and close().
This signal is emitted when a delayed close is finished.
If you call close() and there is buffered output data to be written, QSocket goes into the QSocket::Closing state and returns immediately. It will then keep writing to the socket until all the data has been written. Then, the delayCloseFinished() signal is emitted.
See also close().
This signal is emitted after an error occurred.
Reimplemented from QIODevice.
See also bytesAvailable() and putch().
Reimplemented from QIODevice.
This signal is emitted after connectToHost() has been called and the host lookup has succeeded.
See also connected().
See also close().
Reimplemented from QIODevice.
Returns ch, or -1 if some error occurred.
See also getch().
Reimplemented from QIODevice.
Reimplemented from QIODevice.
Reimplemented in QtSSLSocket.
See also canReadLine().
Reimplemented in QtSSLSocket.
This signal is emitted when there is incoming data to be read.
Every time when there is new incoming data this signal is emitted once. Keep in mind that new incoming data is only reported once; i.e. if you do not read all data, this signal is not emitted again unless new data arrives on the socket.
See also readBlock(), readLine(), and bytesAvailable().
This allows one to use the QSocket class as a wrapper for other socket types (e.g. Unix Domain Sockets under Unix).
Reimplemented from QIODevice.
There is normally no need to manipulate the socket device directly since this class does the necessary setup for most applications.
See also QSocket::State.
Reimplemented from QIODevice.
If msecs is -1 the call will block indefinitely. This is a blocking call and should be avoided in event driven applications.
Returns the number of bytes available.
See also bytesAvailable().
Reimplemented from QIODevice.
Reimplemented in QtSSLSocket.
This file is part of the Qtopia platform, copyright © 1995-2005 Trolltech, all rights reserved.
| Copyright © 2005 Trolltech | Trademarks | Qtopia version 2.2.0
|