![]() |
Qt 6.x
The Qt SDK
|
The QSctpServer class provides an SCTP-based server. More...
#include <qsctpserver.h>
Public Member Functions | |
QSctpServer (QObject *parent=nullptr) | |
Constructs a QSctpServer object. | |
virtual | ~QSctpServer () |
Destroys the QSctpServer object. | |
void | setMaximumChannelCount (int count) |
Sets the maximum number of channels that the server is prepared to support in datagram mode, to count. | |
int | maximumChannelCount () const |
Returns the maximum number of channels that the accepted sockets are able to support. | |
QSctpSocket * | nextPendingDatagramConnection () |
Returns the next pending datagram-mode connection as a connected QSctpSocket object. | |
![]() | |
QTcpServer (QObject *parent=nullptr) | |
Constructs a QTcpServer object. | |
virtual | ~QTcpServer () |
Destroys the QTcpServer object. | |
bool | listen (const QHostAddress &address=QHostAddress::Any, quint16 port=0) |
Tells the server to listen for incoming connections on address address and port port. | |
void | close () |
Closes the server. | |
bool | isListening () const |
Returns true if the server is currently listening for incoming connections; otherwise returns false . | |
void | setMaxPendingConnections (int numConnections) |
Sets the maximum number of pending accepted connections to numConnections. | |
int | maxPendingConnections () const |
Returns the maximum number of pending accepted connections. | |
void | setListenBacklogSize (int size) |
Sets the backlog queue size of to be accepted connections to size. | |
int | listenBacklogSize () const |
Returns the backlog queue size of to be accepted connections. | |
quint16 | serverPort () const |
Returns the server's port if the server is listening for connections; otherwise returns 0. | |
QHostAddress | serverAddress () const |
Returns the server's address if the server is listening for connections; otherwise returns QHostAddress::Null. | |
qintptr | socketDescriptor () const |
Returns the native socket descriptor the server uses to listen for incoming instructions, or -1 if the server is not listening. | |
bool | setSocketDescriptor (qintptr socketDescriptor) |
Sets the socket descriptor this server should use when listening for incoming connections to socketDescriptor. | |
bool | waitForNewConnection (int msec=0, bool *timedOut=nullptr) |
Waits for at most msec milliseconds or until an incoming connection is available. | |
virtual bool | hasPendingConnections () const |
Returns true if the server has a pending connection; otherwise returns false . | |
virtual QTcpSocket * | nextPendingConnection () |
Returns the next pending connection as a connected QTcpSocket object. | |
QAbstractSocket::SocketError | serverError () const |
Returns an error code for the last error that occurred. | |
QString | errorString () const |
Returns a human readable description of the last error that occurred. | |
void | pauseAccepting () |
void | resumeAccepting () |
void | setProxy (const QNetworkProxy &networkProxy) |
QNetworkProxy | proxy () const |
![]() | |
Q_INVOKABLE | QObject (QObject *parent=nullptr) |
Constructs an object with parent object parent. | |
virtual | ~QObject () |
Destroys the object, deleting all its child objects. | |
virtual bool | event (QEvent *event) |
This virtual function receives events to an object and should return true if the event e was recognized and processed. | |
virtual bool | eventFilter (QObject *watched, QEvent *event) |
Filters events if this object has been installed as an event filter for the watched object. | |
QString | objectName () const |
Q_WEAK_OVERLOAD void | setObjectName (const QString &name) |
Sets the object's name to name. | |
void | setObjectName (QAnyStringView name) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
QBindable< QString > | bindableObjectName () |
bool | isWidgetType () const |
Returns true if the object is a widget; otherwise returns false . | |
bool | isWindowType () const |
Returns true if the object is a window; otherwise returns false . | |
bool | isQuickItemType () const |
Returns true if the object is a QQuickItem; otherwise returns false . | |
bool | signalsBlocked () const noexcept |
Returns true if signals are blocked; otherwise returns false . | |
bool | blockSignals (bool b) noexcept |
If block is true, signals emitted by this object are blocked (i.e., emitting a signal will not invoke anything connected to it). | |
QThread * | thread () const |
Returns the thread in which the object lives. | |
void | moveToThread (QThread *thread) |
Changes the thread affinity for this object and its children. | |
int | startTimer (int interval, Qt::TimerType timerType=Qt::CoarseTimer) |
This is an overloaded function that will start a timer of type timerType and a timeout of interval milliseconds. | |
int | startTimer (std::chrono::milliseconds time, Qt::TimerType timerType=Qt::CoarseTimer) |
void | killTimer (int id) |
Kills the timer with timer identifier, id. | |
template<typename T > | |
T | findChild (const QString &aName=QString(), Qt::FindChildOptions options=Qt::FindChildrenRecursively) const |
Returns the child of this object that can be cast into type T and that is called name, or \nullptr if there is no such object. | |
template<typename T > | |
QList< T > | findChildren (const QString &aName, Qt::FindChildOptions options=Qt::FindChildrenRecursively) 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. | |
template<typename T > | |
QList< T > | findChildren (Qt::FindChildOptions options=Qt::FindChildrenRecursively) const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
const QObjectList & | children () const |
Returns a list of child objects. | |
void | setParent (QObject *parent) |
Makes the object a child of parent. | |
void | installEventFilter (QObject *filterObj) |
Installs an event filter filterObj on this object. | |
void | removeEventFilter (QObject *obj) |
Removes an event filter object obj from this object. | |
QMetaObject::Connection | connect (const QObject *sender, const char *signal, const char *member, Qt::ConnectionType type=Qt::AutoConnection) const |
bool | disconnect (const char *signal=nullptr, const QObject *receiver=nullptr, const char *member=nullptr) const |
bool | disconnect (const QObject *receiver, const char *member=nullptr) const |
void | dumpObjectTree () const |
Dumps a tree of children to the debug output. | |
void | dumpObjectInfo () const |
Dumps information about signal connections, etc. | |
bool | setProperty (const char *name, const QVariant &value) |
Sets the value of the object's name property to value. | |
bool | setProperty (const char *name, QVariant &&value) |
QVariant | property (const char *name) const |
Returns the value of the object's name property. | |
QList< QByteArray > | dynamicPropertyNames () const |
QBindingStorage * | bindingStorage () |
const QBindingStorage * | bindingStorage () const |
QObject * | parent () const |
Returns a pointer to the parent object. | |
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 . | |
Protected Member Functions | |
void | incomingConnection (qintptr handle) override |
\reimp | |
![]() | |
virtual void | incomingConnection (qintptr handle) |
This virtual function is called by QTcpServer when a new connection is available. | |
void | addPendingConnection (QTcpSocket *socket) |
This function is called by QTcpServer::incomingConnection() to add the socket to the list of pending incoming connections. | |
QTcpServer (QAbstractSocket::SocketType socketType, QTcpServerPrivate &dd, QObject *parent=nullptr) | |
![]() | |
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 \nullptr. | |
int | senderSignalIndex () const |
int | receivers (const char *signal) const |
Returns the number of receivers connected to the signal. | |
bool | isSignalConnected (const QMetaMethod &signal) const |
virtual void | timerEvent (QTimerEvent *event) |
This event handler can be reimplemented in a subclass to receive timer events for the object. | |
virtual void | childEvent (QChildEvent *event) |
This event handler can be reimplemented in a subclass to receive child events. | |
virtual void | customEvent (QEvent *event) |
This event handler can be reimplemented in a subclass to receive custom events. | |
virtual void | connectNotify (const QMetaMethod &signal) |
virtual void | disconnectNotify (const QMetaMethod &signal) |
QObject (QObjectPrivate &dd, QObject *parent=nullptr) | |
Additional Inherited Members | |
![]() | |
void | deleteLater () |
\threadsafe | |
![]() | |
void | newConnection () |
This signal is emitted every time a new connection is available, regardless of whether it has been added to the pending connections queue or not. | |
void | pendingConnectionAvailable (QPrivateSignal) |
This signal is emitted every time a new connection has been added to the pending connections queue. | |
void | acceptError (QAbstractSocket::SocketError socketError) |
![]() | |
void | destroyed (QObject *=nullptr) |
This signal is emitted immediately before the object obj is destroyed, after any instances of QPointer have been notified, and cannot be blocked. | |
void | objectNameChanged (const QString &objectName, QPrivateSignal) |
This signal is emitted after the object's name has been changed. | |
![]() | |
static QMetaObject::Connection | connect (const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection) |
\threadsafe | |
static QMetaObject::Connection | connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type=Qt::AutoConnection) |
template<typename Func1 , typename Func2 > | |
static QMetaObject::Connection | connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::ContextTypeForFunctor< Func2 >::ContextType *context, Func2 &&slot, Qt::ConnectionType type=Qt::AutoConnection) |
template<typename Func1 , typename Func2 > | |
static QMetaObject::Connection | connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, Func2 &&slot) |
static bool | disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *member) |
\threadsafe | |
static bool | disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &member) |
static bool | disconnect (const QMetaObject::Connection &) |
Disconnect a connection. | |
template<typename Func1 , typename Func2 > | |
static bool | disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::FunctionPointer< Func2 >::Object *receiver, Func2 slot) |
template<typename Func1 > | |
static bool | disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const QObject *receiver, void **zero) |
![]() | |
QScopedPointer< QObjectData > | d_ptr |
![]() | |
QString | objectName |
the name of this object | |
![]() | |
template< class T > T | qobject_cast (const QObject *object) |
Returns the given object cast to type T if the object is of type T (or of a subclass); otherwise returns \nullptr. | |
template< typename T > T | qFindChildqFindChildren (const QObject *obj, const QString &name)() |
template< typename T > QList< T > | qFindChildrenqFindChildren (const QObject *obj, const QString &name)() |
QObjectList | |
\macro Q_CLASSINFO(Name, Value) | |
The QSctpServer class provides an SCTP-based server.
\inmodule QtNetwork
SCTP (Stream Control Transmission Protocol) is a transport layer protocol serving in a similar role as the popular protocols TCP and UDP. Like UDP, SCTP is message-oriented, but it ensures reliable, in-sequence transport of messages with congestion control like TCP. See the QSctpSocket documentation for more protocol details.
QSctpServer is a convenience subclass of QTcpServer that allows you to accept incoming SCTP socket connections either in TCP emulation or in datagram mode.
The most common way to use QSctpServer is to construct an object and set the maximum number of channels that the server is prepared to support, by calling setMaximumChannelCount(). You can set the TCP emulation mode by passing a negative argument in this call. Also, a special value of 0 (the default) indicates to use the peer's value as the actual number of channels. The new incoming connection inherits this number from the server socket descriptor and adjusts it according to the remote endpoint settings.
In TCP emulation mode, accepted clients use a single continuous byte stream for data transmission, and QSctpServer acts like a plain QTcpServer. 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. This mode gives access only to basic SCTP protocol features. The socket transmits SCTP packets over IP at system level and interacts through the QTcpSocket interface with the application.
In contrast, datagram mode is message-oriented and provides a complete simultaneous transmission of multiple data streams between endpoints. Call nextPendingDatagramConnection() to accept the pending datagram-mode connection as a connected QSctpSocket.
Definition at line 17 of file qsctpserver.h.
Constructs a QSctpServer object.
Sets the datagram operation mode. The parent argument is passed to QObject's constructor.
Definition at line 97 of file qsctpserver.cpp.
References qDebug.
|
virtual |
Destroys the QSctpServer object.
If the server is listening for connections, the socket is automatically closed.
Definition at line 111 of file qsctpserver.cpp.
References qDebug.
\reimp
Reimplemented from QTcpServer.
Definition at line 159 of file qsctpserver.cpp.
References QTcpServer::addPendingConnection(), maximumChannelCount(), qDebug, QAbstractSocket::setSocketDescriptor(), socket, and QTcpServer::socketDescriptor().
int QSctpServer::maximumChannelCount | ( | ) | const |
Returns the maximum number of channels that the accepted sockets are able to support.
A value of 0 (the default) means that the number of connection channels would be set by the remote endpoint.
Returns -1, if QSctpServer running in TCP emulation mode.
Definition at line 152 of file qsctpserver.cpp.
Referenced by incomingConnection().
QSctpSocket * QSctpServer::nextPendingDatagramConnection | ( | ) |
Returns the next pending datagram-mode connection as a connected QSctpSocket object.
Datagram-mode connection provides a message-oriented, multi-stream communication.
The socket is created as a child of the server, which means that it is automatically deleted when the QSctpServer object is destroyed. It is still a good idea to delete the object explicitly when you are done with it, to avoid wasting memory.
This function returns null if there are no pending datagram-mode connections.
Definition at line 192 of file qsctpserver.cpp.
void QSctpServer::setMaximumChannelCount | ( | int | count | ) |
Sets the maximum number of channels that the server is prepared to support in datagram mode, to count.
If count is 0, endpoint maximum number of channels value would be used. Negative count sets a TCP emulation mode.
Call this method only when QSctpServer is in UnconnectedState.
Definition at line 128 of file qsctpserver.cpp.
References d, qDebug, qWarning, and QAbstractSocket::UnconnectedState.