好容易把程序调通了,但是问题又又又来了,其他特殊符号没问题,中文单个也没问题,就是多打几个中文汉字就不行了, 网上找的那些方法都不适用,期待高手帮忙。
void MsgThread::run()
{
char buf[1024] = {0};
while(true){
if(mIsSend){
qDebug() << "msg:"<< mMsg;
//发送
:::send(mSocket,mMsg.toUtf8().data(),mMsg.length() +1,0);
int errorCode = WSAGetLastError();
//连接超时
if( errorCode == WSAECONNABORTED) {
emit isClose();
return;
}
//等待服务端回应
int ret = ::recv(mSocket,buf,1024,0);
//服务端关闭
if( ret == 0)
{
emit isClose();
return;
}
QTime time = QTime::currentTime();
QString str = time.toString("hh:mm:ss");
QString msg = QString("%1 收到消息 %2").arg(str).arg(buf); 编译结果就是打了5个汉字,只能显示2个,我怀疑buf这里有问题
emit isMsg(msg); 希望请高手们指点一二!
mIsSend = false;
}
}
}