QSctpServer 类提供基于 SCTP (流控制传输协议) 的服务器。 更多...
头: | #include <QSctpServer> |
CMake: |
find_package(Qt6 REQUIRED COMPONENTS Network)
target_link_libraries(mytarget PRIVATE Qt6::Network) |
qmake: | QT += network |
继承: | QTcpServer |
QSctpServer (QObject * parent = nullptr) | |
virtual | ~QSctpServer () |
int | maximumChannelCount () const |
QSctpSocket * | nextPendingDatagramConnection () |
void | setMaximumChannelCount (int count ) |
virtual void | incomingConnection (qintptr socketDescriptor ) override |
SCTP 是充当流行 TCP 和 UDP 协议类似角色的传输层协议。像 UDP,SCTP 面向消息,但它采用像 TCP 的拥塞控制以确保消息的可靠、按顺序传输。见 QSctpSocket 文档编制了解更多协议细节。
QSctpServer 是方便子类为 QTcpServer 允许您以 TCP 仿真或数据报方式接受传入 SCTP 套接字连接。
使用 QSctpServer 的最常见方式是构造对象并设置服务器准备要支持的最大通道数,通过调用 setMaximumChannelCount ()。可以把负自变量传递给此调用,设置 TCP 仿真模式。另外,特殊值 0 (默认) 指示把对等方的值用作实际通道数。新的传入连接从服务器套接字描述符继承此数,并根据远程端点设置调节它。
在 TCP 仿真模式下,接受客户端使用单连续字节流进行数据传输,且 QSctpServer 举动像纯 QTcpServer 。调用 nextPendingConnection () 以接受待决连接作为已连接 QTcpSocket 。函数返回的指针指向 QTcpSocket in QAbstractSocket::ConnectedState 可以使用它与客户端进行通信。此模式只允许访问基本 SCTP 协议特征。套接字在系统级通过 IP 传输 SCTP 数据包,和交互透过 QTcpSocket 接口采用应用程序。
相比之下,数据报模式面向消息,并在端点之间提供多数据流的完整同时传输。调用 nextPendingDatagramConnection () 以接受待决数据报模式连接作为已连接 QSctpSocket .
注意: Windows 平台不支持此类。
另请参阅 QTcpServer , QSctpSocket ,和 QAbstractSocket .
[explicit]
QSctpServer::
QSctpServer
(
QObject
*
parent
= nullptr)
构造 QSctpServer 对象。
设置数据报操作模式。 parent 自变量会被传递给 QObject 的构造函数。
另请参阅 setMaximumChannelCount (), listen (),和 setSocketDescriptor ().
[virtual noexcept]
QSctpServer::
~QSctpServer
()
销毁 QSctpServer 对象。若服务器正在监听连接,套接字会自动关闭。
另请参阅 close ().
[override virtual protected]
void
QSctpServer::
incomingConnection
(
qintptr
socketDescriptor
)
重实现: QTcpServer::incomingConnection (qintptr socketDescriptor).
返回被接受套接字能够支持的最大通道数。
0 值 (默认) 意味着连接通道数将由远程端点进行设置。
返回 -1,若 QSctpServer 运行在 TCP 仿真模式下。
另请参阅 setMaximumChannelCount ().
返回下一待决数据报模式连接作为已连接 QSctpSocket 对象。
数据报模式连接提供面向消息的多流通信。
套接字是作为服务器子级创建的,意味着会自动删除它当 QSctpServer 对象被销毁。明确删除对象仍是好主意当这样处理时,以避免浪费内存。
此函数返回 null,若没有待决数据报模式连接。
注意: 返回的 QSctpSocket 对象不可以用于另一线程。若想要从另一线程使用传入连接,需要覆盖 incomingConnection ().
另请参阅 hasPendingConnections (), nextPendingConnection (),和 QSctpSocket .
把服务器准备在数据报模式下支持的最大通道数设为 count 。若 count 为 0,将使用端点最大通道数值。负 count 设置 TCP 仿真模式。
才调用此方法当 QSctpServer 处于 UnconnectedState。
另请参阅 maximumChannelCount () 和 QSctpSocket .