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 對象。
設置數據報操作模式。 parent 自變量會被傳遞給 QObject 的構造函數。
另請參閱 setMaximumChannelCount (), listen (),和 setSocketDescriptor ().
[虛擬]
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 .