QT的QDtls类的使用
詳細(xì)說明
此類為UDP套接字提供加密。
QDtls類可用于使用用戶數(shù)據(jù)報(bào)協(xié)議(UDP)與網(wǎng)絡(luò)對(duì)等方建立安全連接。通過基本無連接的UDP進(jìn)行DTLS連接意味著兩個(gè)對(duì)等方首先必須通過調(diào)用doHandshake()成功完成TLS握手。握手完成后,可以使用writeDatagramEncrypted()將加密的數(shù)據(jù)報(bào)發(fā)送到對(duì)等方。來自對(duì)等方的已加密數(shù)據(jù)報(bào)可以由cryptoDatagram()解密。
QDtls旨在與QUdpSocket一起使用。由于QUdpSocket可以接收來自不同對(duì)等方的數(shù)據(jù)報(bào),因此應(yīng)用程序必須實(shí)現(xiàn)多路分解,將來自不同對(duì)等方的數(shù)據(jù)報(bào)轉(zhuǎn)發(fā)到其相應(yīng)的QDtls實(shí)例。可以使用對(duì)等方的地址和端口號(hào)在網(wǎng)絡(luò)對(duì)等方與其QDtls對(duì)象之間建立關(guān)聯(lián)。在開始握手之前,應(yīng)用程序必須使用setPeer()設(shè)置對(duì)等方的地址和端口號(hào)。
QDtls不會(huì)從QUdpSocket讀取數(shù)據(jù)報(bào),這預(yù)計(jì)將由應(yīng)用程序完成,例如,在連接到QUdpSocket :: readyRead()信號(hào)的插槽中完成。然后,這些數(shù)據(jù)報(bào)必須由QDtls處理。
注意:QDtls不擁有QUdpSocket對(duì)象的所有權(quán)。
通常,在握手階段,兩個(gè)對(duì)等方將接收和發(fā)送幾個(gè)數(shù)據(jù)報(bào)。在讀取數(shù)據(jù)報(bào)后,服務(wù)器和客戶端必須將這些數(shù)據(jù)報(bào)傳遞給doHandshake(),直到發(fā)現(xiàn)某些錯(cuò)誤或handshakeState()返回HandshakeComplete為止:
總結(jié)
以上是生活随笔為你收集整理的QT的QDtls类的使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: QT的QDrag类的使用
- 下一篇: QT的QDtlsClientVerifi