使用qt與go服務端進行通訊,每個資料報大小都以約定好結構為 len | feature| compress| data
結果使用qdatastream進行新增資料時發現data資料開頭有亂碼,比如傳送12345結果服務端接收為
qt 傳送**如下:
qbytearray socket_packdata=qstring("12345").tolatin1();
bool iscompress=false;
qbytearray senddata;
qdatastream dts(&senddata,qiodevice::writeonly);
dts<
dts<
write(senddata);
flush();
仔細看沒有問題,變改了服務端**,讓其去除data前面四個位元組,結果顯示正常。
後經查詢發覺可能是qbytearry會自動帶上其大小,便使用char * 指標往後移四位,結果伺服器接收資料少四位。
最後才發現dts只需改為
senddata +=socket_packdata 不使用 qdatastream 中的<< 即可切記切記。
qt初次使用
qt獲取當前系統時間並顯示 包含標頭檔案qdatatime qdatetime time qdatetime currentdatetime 獲取系統現在的時間 qstring str time.tostring yyyy mm dd hh mm ss 設定顯示格式 qdatetime轉換為qstr...
使用Qt資源
在qt做介面的時候經常會用到一些資源,如,國際化,qss等。在qt中可以放在構建目錄下,也可以放在工程目錄中。但是放在工程目錄下的打包的時候就麻煩一些。這裡以為例,介紹一下qt資源的使用方法。1.新建乙個qt視窗專案。然後選中再新建qt資源,這樣在qt專案列表出現了新的資料夾 資源。點開資源看到qr...
qt控制項使用
1.建立視窗 qwidget window new qwidget window resize 300,300 window show qpushbutton button new qpushbutton tr window button move 100,100 button show 2.按鈕控...