簡體   English   中英

在Qt中確定TCP套接字上的數據類型

[英]Determine Data Type on a TCP Socket in Qt

我正在編寫一個程序,使用Qt庫設置連接等,以通過TCP連接發送從OpenCV窗口捕獲的圖像。

我必須使用下面的函數來發送文本或字節數組。 我遇到的問題是在另一端,如何確定輸入的數據是純文本還是包含圖像的數組。 是否有內置的方法來執行此操作,還是我需要在數據的開頭放置一個字節以告知接收器要接收哪些數據? 我已經將數組長度放在序列化圖像數據的開頭。

void Screenshot_controller::sendText(std::string textToSend)
{
    if(connectionMade)
    {
        std::string endLine = "\r\n";
        textToSend = textToSend + endLine;
        const char * textChar = textToSend.c_str();
        sendSocket->write(textChar);
        sendSocket->flush();
        qDebug() << "Text Sent from Server";
    }
}

void Screenshot_controller::sendData(QByteArray dataToSend)
{
    if(connectionMade)
    {
        sendSocket->write(dataToSend);
        sendSocket->flush();
        qDebug() << "Data Sent from Server";
    }
}

您需要自己定義協議,無論是使用字節,字符串,JSON標頭還是任何其他方法。 Tcp套接字將允許您傳輸數據,但不在乎該數據是什么。 由您自己決定。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM