1. qt怎樣把整個文件夾的內容通過tcp傳輸
/**
*1、用遞歸的方式依次傳輸單個文件。
*2、將整個目錄打包成壓縮文件,再通過tcp傳輸。
*/
tcpSocket->write();
2. 解決Qt Tcp通信傳輸中文字元亂碼問題
用Qt編寫的窗口與Unity3D通過Tcp進行通信,通信過程中難免發送一些中文字元,下面簡單介紹一下:
Qt版本:5.9.9 , 建立TcpServer
unity3D 建立TcpSocket , 通過固定埠進行通信
Qt與Unity3D通信發生中文亂碼問題,主要在以下方面:
1. 在Qt main.cpp 中添加以下設置
QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK"));
GBK要與Unity3D中的保持一致,GB2312也是可以的,UTF-8不可以。
2. Qt發送數據
mCommondSocket->write(command.toLocal8Bit());
發送的字元串直接轉化為QByteArray發送,轉化為char*發送,是會亂碼的。
3.示例截圖
通過Qt發送一個視頻地址,在Unity3D上進行視頻播放,也會列印出接收的數據。
videoPath代表視頻地址:前面的BG代表標識;MuTcpSocketObject是tcp通信.
好了,都已經介紹完畢,希望能幫到大家。
3. QT 使用TCP進行數據傳輸問題,tcp只能通過數據流形式傳數據嗎不能傳輸自定義struct類型嗎
可以的,你自己定好協議,轉好網路位元組序,然後傳送不就可以了。
4. linux Qt下,tcp文件傳輸
這個用抄不著QT。QT是C++寫的,C++兼容C。我這倒是有C語言寫的。你要的話把郵箱給我。我發給你。發給你的東西有很多其他的代碼。有聊天程序,有傳文件的程序(模擬scp)、還有shell。
你說 用getlp函數 得到的ip不對,可能是你選的連接類型是本地連接。用socket的時候你要用 AF_INET 而不是 AF_UNIX。
5. QT中用TCP發送文件時界面卡死,只有等文件發送完成才恢復正常,怎麼解決
是不是你發送的文件比較大,此時loading比較大,導致了QT 出於停止響應的狀態~
你可以打開設備工作管理員,看看你在傳輸文件的時候,CPU和RAM的loading是不是比較大~