【发布时间】:2017-10-20 09:59:03
【问题描述】:
此槽必须将消息放入套接字的缓冲区,但未发送信号 readyRead()。 我发现写入数据的大小与数组大小相同,但方法 bytesAvailable() 总是返回零。 不明白为什么会这样
代码:
void Client::slotMessageSend()
{
QByteArray array;
QDataStream str(&array, QIODevice::WriteOnly);
str.setVersion(QDataStream::Qt_4_5);
str << quint16(0) << QTime::currentTime() << ui->textMessage->toPlainText() ;
str.device()->seek(0);
str << quint16(array.size() - sizeof(quint16));
cout << pClientSocket->write(array) << endl;
cout << array.size()<< " " << pClientSocket->bytesAvailable() << endl;
ui->textMessage->setPlainText("");
}
【问题讨论】:
-
你看过 Qt 套接字示例吗?看起来有点奇怪,你想用那个代码做什么?通常你写一个套接字,接收器(即套接字服务器)可能会发回一些东西,然后你可以读取数据并有一些可用的字节,
bytesAvailable()将是>0。 -
我想将数据写入套接字并在我的客户端和服务器上读取这些数据