Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
QSctpServer Class Reference

The QSctpServer class provides an SCTP-based server. More...

#include <qsctpserver.h>

+ Inheritance diagram for QSctpServer:
+ Collaboration diagram for QSctpServer:

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.
 
QSctpSocketnextPendingDatagramConnection ()
 Returns the next pending datagram-mode connection as a connected QSctpSocket object.
 
- Public Member Functions inherited from QTcpServer
 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 QTcpSocketnextPendingConnection ()
 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
 
- Public Member Functions inherited from QObject
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< QStringbindableObjectName ()
 
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).
 
QThreadthread () const
 Returns the thread in which the object lives.
 
bool moveToThread (QThread *thread QT6_DECL_NEW_OVERLOAD_TAIL)
 Changes the thread affinity for this object and its children and returns true on success.
 
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::nanoseconds time, Qt::TimerType timerType=Qt::CoarseTimer)
 
void killTimer (int id)
 Kills the timer with timer identifier, id.
 
void killTimer (Qt::TimerId id)
 
template<typename T >
findChild (QAnyStringView aName, 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 (QAnyStringView 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 >
findChild (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.
 
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 QObjectListchildren () 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< QByteArraydynamicPropertyNames () const
 
QBindingStoragebindingStorage ()
 
const QBindingStoragebindingStorage () const
 
QObjectparent () 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
 
- Protected Member Functions inherited from QTcpServer
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)
 
- Protected Member Functions inherited from QObject
QObjectsender () 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

- Public Slots inherited from QObject
void deleteLater ()
 \threadsafe
 
- Signals inherited from QTcpServer
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)
 
- Signals inherited from QObject
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 Public Member Functions inherited from QObject
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)
 
- Protected Attributes inherited from QObject
QScopedPointer< QObjectDatad_ptr
 
- Properties inherited from QObject
QString objectName
 the name of this object
 

Detailed Description

The QSctpServer class provides an SCTP-based server.

Since
5.8

\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.

Note
This class is not supported on the Windows platform.
See also
QTcpServer, QSctpSocket, QAbstractSocket

Definition at line 17 of file qsctpserver.h.

Constructor & Destructor Documentation

◆ QSctpServer()

QSctpServer::QSctpServer ( QObject * parent = nullptr)
explicit

Constructs a QSctpServer object.

Sets the datagram operation mode. The parent argument is passed to QObject's constructor.

See also
setMaximumChannelCount(), listen(), setSocketDescriptor()

Definition at line 97 of file qsctpserver.cpp.

References qDebug.

◆ ~QSctpServer()

QSctpServer::~QSctpServer ( )
virtual

Destroys the QSctpServer object.

If the server is listening for connections, the socket is automatically closed.

See also
close()

Definition at line 111 of file qsctpserver.cpp.

References qDebug.

Member Function Documentation

◆ incomingConnection()

void QSctpServer::incomingConnection ( qintptr handle)
overrideprotectedvirtual

\reimp

Reimplemented from QTcpServer.

Definition at line 159 of file qsctpserver.cpp.

References QTcpServer::addPendingConnection(), maximumChannelCount(), qDebug, QAbstractSocket::setSocketDescriptor(), socket, and QTcpServer::socketDescriptor().

+ Here is the call graph for this function:

◆ maximumChannelCount()

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.

See also
setMaximumChannelCount()

Definition at line 152 of file qsctpserver.cpp.

Referenced by incomingConnection().

+ Here is the caller graph for this function:

◆ nextPendingDatagramConnection()

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.

Note
The returned QSctpSocket object cannot be used from another thread. If you want to use an incoming connection from another thread, you need to override incomingConnection().
See also
hasPendingConnections(), nextPendingConnection(), QSctpSocket

Definition at line 192 of file qsctpserver.cpp.

References QSet< T >::begin(), d, it, Q_ASSERT, and socket.

+ Here is the call graph for this function:

◆ setMaximumChannelCount()

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.

See also
maximumChannelCount(), QSctpSocket

Definition at line 128 of file qsctpserver.cpp.

References d, qDebug, qWarning, and QAbstractSocket::UnconnectedState.


The documentation for this class was generated from the following files: