QSctpServer 類

QSctpServer 類提供基於 SCTP (流控製傳輸協議) 的服務器。 更多...

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

該類在 Qt 5.8 引入。

公共函數

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 .

成員函數文檔編製

QSctpServer:: QSctpServer ( QObject * parent = nullptr)

構造 QSctpServer 對象。

設置數據報操作模式。 parent 自變量會被傳遞給 QObject 的構造函數。

另請參閱 setMaximumChannelCount (), listen (),和 setSocketDescriptor ().

[虛擬] QSctpServer:: ~QSctpServer ()

銷毀 QSctpServer 對象。若服務器正在監聽連接,套接字會自動關閉。

另請參閱 close ().

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

重實現: QTcpServer::incomingConnection (qintptr socketDescriptor).

int QSctpServer:: maximumChannelCount () const

返迴被接受套接字能夠支持的最大通道數。

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 .