Qt 4.8
|
The QTcpServer class provides a TCP-based server. More...
#include <qtcpserver.h>
Signals | |
void | newConnection () |
This signal is emitted every time a new connection is available. More... | |
Signals inherited from QObject | |
void | destroyed (QObject *=0) |
This signal is emitted immediately before the object obj is destroyed, and can not be blocked. More... | |
Public Functions | |
void | close () |
Closes the server. More... | |
QString | errorString () const |
Returns a human readable description of the last error that occurred. More... | |
virtual bool | hasPendingConnections () const |
Returns true if the server has a pending connection; otherwise returns false. More... | |
bool | isListening () const |
Returns true if the server is currently listening for incoming connections; otherwise returns false. More... | |
bool | listen (const QHostAddress &address=QHostAddress::Any, quint16 port=0) |
Tells the server to listen for incoming connections on address address and port port. More... | |
int | maxPendingConnections () const |
Returns the maximum number of pending accepted connections. More... | |
virtual QTcpSocket * | nextPendingConnection () |
Returns the next pending connection as a connected QTcpSocket object. More... | |
QNetworkProxy | proxy () const |
Returns the network proxy for this socket. More... | |
QTcpServer (QObject *parent=0) | |
Constructs a QTcpServer object. More... | |
QHostAddress | serverAddress () const |
Returns the server's address if the server is listening for connections; otherwise returns QHostAddress::Null. More... | |
QAbstractSocket::SocketError | serverError () const |
Returns an error code for the last error that occurred. More... | |
quint16 | serverPort () const |
Returns the server's port if the server is listening for connections; otherwise returns 0. More... | |
void | setMaxPendingConnections (int numConnections) |
Sets the maximum number of pending accepted connections to numConnections. More... | |
void | setProxy (const QNetworkProxy &networkProxy) |
Sets the explicit network proxy for this socket to networkProxy. More... | |
bool | setSocketDescriptor (int socketDescriptor) |
Sets the socket descriptor this server should use when listening for incoming connections to socketDescriptor. More... | |
int | socketDescriptor () const |
Returns the native socket descriptor the server uses to listen for incoming instructions, or -1 if the server is not listening. More... | |
bool | waitForNewConnection (int msec=0, bool *timedOut=0) |
Waits for at most msec milliseconds or until an incoming connection is available. More... | |
virtual | ~QTcpServer () |
Destroys the QTcpServer object. More... | |
Public Functions inherited from QObject | |
bool | blockSignals (bool b) |
If block is true, signals emitted by this object are blocked (i.e., emitting a signal will not invoke anything connected to it). More... | |
const QObjectList & | children () const |
Returns a list of child objects. More... | |
bool | connect (const QObject *sender, const char *signal, const char *member, Qt::ConnectionType type=Qt::AutoConnection) const |
bool | disconnect (const char *signal=0, const QObject *receiver=0, const char *member=0) |
bool | disconnect (const QObject *receiver, const char *member=0) |
void | dumpObjectInfo () |
Dumps information about signal connections, etc. More... | |
void | dumpObjectTree () |
Dumps a tree of children to the debug output. More... | |
QList< QByteArray > | dynamicPropertyNames () const |
Returns the names of all properties that were dynamically added to the object using setProperty(). More... | |
virtual bool | event (QEvent *) |
This virtual function receives events to an object and should return true if the event e was recognized and processed. More... | |
virtual bool | eventFilter (QObject *, QEvent *) |
Filters events if this object has been installed as an event filter for the watched object. More... | |
template<typename T > | |
T | findChild (const QString &aName=QString()) const |
Returns the child of this object that can be cast into type T and that is called name, or 0 if there is no such object. More... | |
template<typename T > | |
QList< T > | findChildren (const QString &aName=QString()) const |
Returns all children of this object with the given name that can be cast to type T, or an empty list if there are no such objects. More... | |
template<typename T > | |
QList< T > | findChildren (const QRegExp &re) const |
bool | inherits (const char *classname) const |
Returns true if this object is an instance of a class that inherits className or a QObject subclass that inherits className; otherwise returns false. More... | |
void | installEventFilter (QObject *) |
Installs an event filter filterObj on this object. More... | |
bool | isWidgetType () const |
Returns true if the object is a widget; otherwise returns false. More... | |
void | killTimer (int id) |
Kills the timer with timer identifier, id. More... | |
virtual const QMetaObject * | metaObject () const |
Returns a pointer to the meta-object of this object. More... | |
void | moveToThread (QThread *thread) |
Changes the thread affinity for this object and its children. More... | |
QString | objectName () const |
QObject * | parent () const |
Returns a pointer to the parent object. More... | |
QVariant | property (const char *name) const |
Returns the value of the object's name property. More... | |
Q_INVOKABLE | QObject (QObject *parent=0) |
Constructs an object with parent object parent. More... | |
void | removeEventFilter (QObject *) |
Removes an event filter object obj from this object. More... | |
void | setObjectName (const QString &name) |
void | setParent (QObject *) |
Makes the object a child of parent. More... | |
bool | setProperty (const char *name, const QVariant &value) |
Sets the value of the object's name property to value. More... | |
void | setUserData (uint id, QObjectUserData *data) |
bool | signalsBlocked () const |
Returns true if signals are blocked; otherwise returns false. More... | |
int | startTimer (int interval) |
Starts a timer and returns a timer identifier, or returns zero if it could not start a timer. More... | |
QThread * | thread () const |
Returns the thread in which the object lives. More... | |
QObjectUserData * | userData (uint id) const |
virtual | ~QObject () |
Destroys the object, deleting all its child objects. More... | |
Protected Functions | |
void | addPendingConnection (QTcpSocket *socket) |
This function is called by QTcpServer::incomingConnection() to add the socket to the list of pending incoming connections. More... | |
virtual void | incomingConnection (int handle) |
This virtual function is called by QTcpServer when a new connection is available. More... | |
Protected Functions inherited from QObject | |
virtual void | childEvent (QChildEvent *) |
This event handler can be reimplemented in a subclass to receive child events. More... | |
virtual void | connectNotify (const char *signal) |
This virtual function is called when something has been connected to signal in this object. More... | |
virtual void | customEvent (QEvent *) |
This event handler can be reimplemented in a subclass to receive custom events. More... | |
virtual void | disconnectNotify (const char *signal) |
This virtual function is called when something has been disconnected from signal in this object. More... | |
QObject (QObjectPrivate &dd, QObject *parent=0) | |
int | receivers (const char *signal) const |
Returns the number of receivers connected to the signal. More... | |
QObject * | sender () const |
Returns a pointer to the object that sent the signal, if called in a slot activated by a signal; otherwise it returns 0. More... | |
int | senderSignalIndex () const |
virtual void | timerEvent (QTimerEvent *) |
This event handler can be reimplemented in a subclass to receive timer events for the object. More... | |
Additional Inherited Members | |
Public Slots inherited from QObject | |
void | deleteLater () |
Schedules this object for deletion. More... | |
Static Public Functions inherited from QObject | |
static bool | connect (const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection) |
Creates a connection of the given type from the signal in the sender object to the method in the receiver object. More... | |
static bool | connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type=Qt::AutoConnection) |
static bool | disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *member) |
Disconnects signal in object sender from method in object receiver. More... | |
static bool | disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &member) |
static uint | registerUserData () |
static QString | tr (const char *sourceText, const char *comment=0, int n=-1) |
static QString | trUtf8 (const char *sourceText, const char *comment=0, int n=-1) |
Static Public Variables inherited from QObject | |
static const QMetaObject | staticMetaObject |
This variable stores the meta-object for the class. More... | |
Protected Variables inherited from QObject | |
QScopedPointer< QObjectData > | d_ptr |
Static Protected Variables inherited from QObject | |
static const QMetaObject | staticQtMetaObject |
Related Functions inherited from QObject | |
T | qFindChildqFindChildren (const QObject *obj, const QString &name)() |
QList< T > | qFindChildrenqFindChildren (const QObject *obj, const QString &name)() |
QList< T > | qFindChildrenqFindChildren (const QObject *obj, const QRegExp ®Exp)() |
T * | qobject_cast (QObject *object) |
QObjectList | |
void * | qt_find_obj_child (QObject *parent, const char *type, const QString &name) |
Returns a pointer to the object named name that inherits type and with a given parent. More... | |
The QTcpServer class provides a TCP-based server.
This class makes it possible to accept incoming TCP connections. You can specify the port or have QTcpServer pick one automatically. You can listen on a specific address or on all the machine's addresses.
Call listen() to have the server listen for incoming connections. The newConnection() signal is then emitted each time a client connects to the server.
Call nextPendingConnection() to accept the pending connection as a connected QTcpSocket. The function returns a pointer to a QTcpSocket in QAbstractSocket::ConnectedState that you can use for communicating with the client.
If an error occurs, serverError() returns the type of error, and errorString() can be called to get a human readable description of what happened.
When listening for connections, the address and port on which the server is listening are available as serverAddress() and serverPort().
Calling close() makes QTcpServer stop listening for incoming connections.
Although QTcpServer is mostly designed for use with an event loop, it's possible to use it without one. In that case, you must use waitForNewConnection(), which blocks until either a connection is available or a timeout expires.
On Symbian, processes which use this class must have the NetworkServices
platform security capability. If the client process lacks this capability, it will lead to a panic.
Platform security capabilities are added via the TARGET.CAPABILITY qmake variable.
Definition at line 61 of file qtcpserver.h.
|
explicit |
Constructs a QTcpServer object.
parent is passed to the QObject constructor.
Definition at line 252 of file qtcpserver.cpp.
|
virtual |
Destroys the QTcpServer object.
If the server is listening for connections, the socket is automatically closed.
Any client QTcpSocket that are still connected must either disconnect or be reparented before the server is deleted.
Definition at line 266 of file qtcpserver.cpp.
|
protected |
This function is called by QTcpServer::incomingConnection() to add the socket to the list of pending incoming connections.
Definition at line 611 of file qtcpserver.cpp.
Referenced by incomingConnection().
void QTcpServer::close | ( | ) |
Closes the server.
The server will no longer listen for incoming connections.
Definition at line 371 of file qtcpserver.cpp.
Referenced by QFtpDTP::setupSocket(), and ~QTcpServer().
QString QTcpServer::errorString | ( | ) | const |
Returns a human readable description of the last error that occurred.
Definition at line 663 of file qtcpserver.cpp.
Referenced by QVNCServer::init().
|
virtual |
Returns true if the server has a pending connection; otherwise returns false.
Definition at line 531 of file qtcpserver.cpp.
|
protectedvirtual |
This virtual function is called by QTcpServer when a new connection is available.
The socketDescriptor argument is the native socket descriptor for the accepted connection.
The base implementation creates a QTcpSocket, sets the socket descriptor and then stores the QTcpSocket in an internal list of pending connections. Finally newConnection() is emitted.
Reimplement this function to alter the server's behavior when a connection is available.
If this server is using QNetworkProxy then the socketDescriptor may not be usable with native socket functions, and should only be used with QTcpSocket::setSocketDescriptor().
Definition at line 589 of file qtcpserver.cpp.
bool QTcpServer::isListening | ( | ) | const |
Returns true if the server is currently listening for incoming connections; otherwise returns false.
Definition at line 358 of file qtcpserver.cpp.
Referenced by QTcpServerPrivate::readNotification(), setSocketDescriptor(), QFtpDTP::setupListener(), and QFtpDTP::waitForConnection().
bool QTcpServer::listen | ( | const QHostAddress & | address = QHostAddress::Any , |
quint16 | port = 0 |
||
) |
Tells the server to listen for incoming connections on address address and port port.
If port is 0, a port is chosen automatically. If address is QHostAddress::Any, the server will listen on all network interfaces.
Returns true on success; otherwise returns false.
Definition at line 281 of file qtcpserver.cpp.
Referenced by QVNCServer::init(), and QFtpDTP::setupListener().
int QTcpServer::maxPendingConnections | ( | ) | const |
Returns the maximum number of pending accepted connections.
The default is 30.
Definition at line 642 of file qtcpserver.cpp.
|
signal |
This signal is emitted every time a new connection is available.
|
virtual |
Returns the next pending connection as a connected QTcpSocket object.
The socket is created as a child of the server, which means that it is automatically deleted when the QTcpServer object is destroyed. It is still a good idea to delete the object explicitly when you are done with it, to avoid wasting memory.
0 is returned if this function is called when there are no pending connections.
Definition at line 554 of file qtcpserver.cpp.
Referenced by QVNCServer::newConnection(), and QFtpDTP::setupSocket().
QNetworkProxy QTcpServer::proxy | ( | ) | const |
Returns the network proxy for this socket.
By default QNetworkProxy::DefaultProxy is used.
Definition at line 701 of file qtcpserver.cpp.
Referenced by listen().
QHostAddress QTcpServer::serverAddress | ( | ) | const |
Returns the server's address if the server is listening for connections; otherwise returns QHostAddress::Null.
Definition at line 479 of file qtcpserver.cpp.
QAbstractSocket::SocketError QTcpServer::serverError | ( | ) | const |
Returns an error code for the last error that occurred.
Definition at line 652 of file qtcpserver.cpp.
quint16 QTcpServer::serverPort | ( | ) | const |
Returns the server's port if the server is listening for connections; otherwise returns 0.
Definition at line 466 of file qtcpserver.cpp.
Referenced by QFtpDTP::setupListener().
void QTcpServer::setMaxPendingConnections | ( | int | numConnections | ) |
Sets the maximum number of pending accepted connections to numConnections.
QTcpServer will accept no more than numConnections incoming connections before nextPendingConnection() is called. By default, the limit is 30 pending connections.
Clients may still able to connect after the server has reached its maximum number of pending connections (i.e., QTcpSocket can still emit the connected() signal). QTcpServer will stop accepting the new connections, but the operating system may still keep them in queue.
Definition at line 631 of file qtcpserver.cpp.
void QTcpServer::setProxy | ( | const QNetworkProxy & | networkProxy | ) |
Sets the explicit network proxy for this socket to networkProxy.
To disable the use of a proxy for this socket, use the QNetworkProxy::NoProxy proxy type:
Definition at line 684 of file qtcpserver.cpp.
bool QTcpServer::setSocketDescriptor | ( | int | socketDescriptor | ) |
Sets the socket descriptor this server should use when listening for incoming connections to socketDescriptor.
Returns true if the socket is set successfully; otherwise returns false.
The socket is assumed to be in listening state.
Definition at line 417 of file qtcpserver.cpp.
int QTcpServer::socketDescriptor | ( | ) | const |
Returns the native socket descriptor the server uses to listen for incoming instructions, or -1 if the server is not listening.
If the server is using QNetworkProxy, the returned descriptor may not be usable with native socket functions.
Definition at line 401 of file qtcpserver.cpp.
bool QTcpServer::waitForNewConnection | ( | int | msec = 0 , |
bool * | timedOut = 0 |
||
) |
Waits for at most msec milliseconds or until an incoming connection is available.
Returns true if a connection is available; otherwise returns false. If the operation timed out and timedOut is not 0, *timedOut will be set to true.
This is a blocking function call. Its use is disadvised in a single-threaded GUI application, since the whole application will stop responding until the function returns. waitForNewConnection() is mostly useful when there is no event loop available.
The non-blocking alternative is to connect to the newConnection() signal.
If msec is -1, this function will not time out.
Definition at line 505 of file qtcpserver.cpp.
Referenced by QFtpDTP::waitForConnection().