QT socket 与 linux socket 的字符转换

来源:互联网 发布:淘宝全屏轮播素材女装 编辑:程序博客网 时间:2024/05/16 09:52
    QString send_str;     QByteArray temp=send_str.toUtf8();      send_str=QString::fromUtf8(temp.data(),temp.size());    tcpSocket->write(send_str.toUtf8(),temp.size());  //从socket发送 QString 


用qt来让windows 和linux 同信的时候各种bug 纠结了半天结果是传送字节错了。。。。尴尬


刚开始的时候是用QString::size(),来作为QTcpSocke::write()第二个参数 结果总是少发 然后printf大法了一下

Starting F:\qt023\build-my_qq-Desktop_Qt_5_5_1_MinGW_32bit-Debug\debug\my_qq.exe...

input string size 3

input to utf8 size 9


发现Qstring 的大小和转换为utf8之后不一样


QByteArray datagram;    datagram.resize(tcpSocket->bytesAvailable());    tcpSocket->read(datagram.data(),datagram.size());    QString s= QString::fromUtf8(datagram.data(),datagram.size());//接收的utf8 char* 转换到QString



0 0
原创粉丝点击