Qt TCP 通信 发送接受数据的问题 我只发送了一个用户名字母xxf 密码 123456 5

但是服务器显示为264‘xxf’密码没显示出来这其中的原因搞半天都不知道啊。。。。客户端发送数据的代码voidLoginDialog::sendMessage(){QBy... 但是服务器显示 为 26 4 ‘xxf’ 密码没显示出来 这其中的原因搞半天都不知道啊。。。。

客户端发送数据的代码
void LoginDialog::sendMessage()
{
QByteArray block;
QDataStream out(&block, QIODevice::WriteOnly);
out.setVersion(QDataStream::Qt_5_2);
out<<quint16(0)<<ui->usernameEdit->text()<<ui->passwordEdit->text();
out.device()->seek(0);
out<<quint16(block.size() - sizeof(quint16));
tcpSocket->write(block);
ui->statusLabel->setText(tr("发送用户名和密码中,请稍后......."));
}
服务器接收数据的代码void ClientSocket::readClient()
{
QDataStream in(this);
in.setVersion(QDataStream::Qt_5_2);
if(nextBlockSize == 0)
{
if(this->bytesAvailable() < sizeof(quint16))
return;
in>>nextBlockSize;
}
if(this->bytesAvailable() < nextBlockSize)
return;
in>>message;
qDebug()<<nextBlockSize;
qDebug()<<sizeof(message);
qDebug()<<message;
}
message 是QString nextBlockSize是quint16
展开
 我来答
百度网友914ba41
2014-03-10 · TA获得超过1608个赞
知道小有建树答主
回答量:1217
采纳率:50%
帮助的人:960万
展开全部
我觉得是这样的 QString默认的是以‘\n’结尾 而QDataStream可能遇到‘\n’就以为结束了 你这样试试
out<<quint16(0)<<ui->usernameEdit->text().append( ui->passwordEdit->text() );
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式