socket->write(str.toUtf8(),str.toUtf8().size()); 1. 2. 读时读取出来后,先转为utf8,再从utf8转为local8Bit,即能正常输出中文。 qint64bytes=socket->bytesAvailable(); QStringstr=socket->read(bytes); printf("read data[%s]\n",QString::fromUtf8(str.toUtf8()).toLocal8Bit().data()...
###后来网上一通搜索,发现QTcpSocket使用的是异步收发,就是说write只是写进了buff,而不是真正发送出去,QDataStream的<<也是写入buff。 write函数后需要再加上 _socket->waitForBytesWritten(); 才会真正发送 QDataStream 后面需要 _socket->flush(); 才会发送数据。