在学习QT的过程中,怎么用QUdpSocket的过程中,实现包含中文字符的字符串传输呢?
总的来说就是要把要传输的字符串转化成const char* 进行传输,在传输前要给转化成char*的数据,加上"\0"的字符串结束符。
即先得到QString info;
接着在info后加上(char*)字符串结束符"\0";
再将处理后的info转化成const char* data,并能求得data的长度;
最后将data通过udpSocket->writeDatagram发送。
以上四步如下图所示。
在接受端接受udpSokcetF发送来的数据:
先申请一个1024个字符的char receiveData[1024] ={0};
接着直接调clientSocket->readDatagram(receiveData,1024);
最后将其转化成QString。
最后效果如下图所示:即可实现服务器端到客户端包含中文字符的 字符串的发送,而不是显示乱码。