QSctpServer 类

QSctpServer class provides an SCTP-based server. 更多...

头: #include <QSctpServer>
qmake: QT += network
Since: Qt 5.8
继承: QTcpServer

公共函数

QSctpServer (QObject * parent = nullptr)
virtual ~QSctpServer ()
int maximumChannelCount () const
QSctpSocket * nextPendingDatagramConnection ()
void setMaximumChannelCount (int count )

重实现保护函数

virtual void incomingConnection (qintptr socketDescriptor )

额外继承成员

详细描述

QSctpServer class provides an SCTP-based server.

SCTP (流控制传输协议) 是充当类似流行 TCP 和 UDP 协议角色的传输层协议。像 UDP,SCTP 面向消息,但它采用像 TCP 的拥塞控制确保消息的可靠、按顺序传输。见 QSctpSocket 文档编制了解更多协议细节。

QSctpServer 是方便子类化的 QTcpServer 允许您以 TCP 仿真或数据报方式接受传入 SCTP 套接字连接。

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 ()。可以把负自变量传递给此调用,设置 TCP 仿真模式。另外,特殊值 0 (默认) 指示把对等方的值用作实际通道数。新的传入连接从服务器套接字描述符继承此数,并根据远程端点设置调节它。

In TCP emulation mode, accepted clients use a single continuous byte stream for data transmission, and QSctpServer acts like a plain QTcpServer 。调用 nextPendingConnection () 以接受待决连接作为已连接 QTcpSocket 。函数返回的指针指向 QTcpSocket in QAbstractSocket::ConnectedState 可以使用它与客户端进行通信。此模式只允许访问基本 SCTP 协议特征。套接字在系统级通过 IP 传输 SCTP 数据包,和交互透过 QTcpSocket 接口采用应用程序。

相比之下,数据报模式面向消息,并在端点之间提供多数据流的完整同时传输。调用 nextPendingDatagramConnection () 以接受待决数据报模式连接作为已连接 QSctpSocket .

注意: Windows 平台不支持此特征。

另请参阅 QTcpServer , QSctpSocket ,和 QAbstractSocket .

成员函数文档编制

QSctpServer:: QSctpServer ( QObject * parent = nullptr)

构造 QSctpServer 对象。

设置数据报操作模式。 parent 自变量会被传递给 QObject 的构造函数。

另请参阅 setMaximumChannelCount (), listen (),和 setSocketDescriptor ().

[virtual] QSctpServer:: ~QSctpServer ()

销毁 QSctpServer 对象。若服务器正在监听连接,套接字会自动关闭。

另请参阅 close ().

[virtual protected] void QSctpServer:: incomingConnection ( qintptr socketDescriptor )

重实现自 QTcpServer::incomingConnection ().

int QSctpServer:: maximumChannelCount () const

Returns the maximum number of channels that the accepted sockets are able to support.

0 值 (默认) 意味着连接通道数将由远程端点进行设置。

返回 -1,若 QSctpServer 运行在 TCP 仿真模式下。

另请参阅 setMaximumChannelCount ().

QSctpSocket *QSctpServer:: nextPendingDatagramConnection ()

返回下一待决数据报模式连接作为已连接 QSctpSocket 对象。

数据报模式连接提供面向消息的多流通信。

套接字是作为服务器子级创建的,意味着它会被自动删除当 QSctpServer 对象被销毁。当采用完成后明确删除对象仍是好主意,以避免浪费内存。

此函数返回 null,若没有待决数据报模式连接。

注意: 返回的 QSctpSocket 对象不可以用于另一线程。若想要从另一线程使用传入连接,需要覆盖 incomingConnection ().

另请参阅 hasPendingConnections (), nextPendingConnection (),和 QSctpSocket .

void QSctpServer:: setMaximumChannelCount ( int count )

把服务器准备在数据报模式下支持的最大通道数设为 count 。若 count 为 0,将使用端点最大通道数值。负 count 设置 TCP 仿真模式。

才调用此方法当 QSctpServer 处于 UnconnectedState。

另请参阅 maximumChannelCount () 和 QSctpSocket .