我想实现简单的服务器与客户端的通信,但客户端好像是写不上数据,我想了好久也没解决,请大家帮偶看一下,非常感谢!下面是客户端写数据和服务器读数据的代码
void Client::sendFortune(){
QByteArray block;
QDataStream out(&block, QIODevice::WriteOnly);
out.setVersion(QDataStream::Qt_4_2);
out << (quint16)0;
out << fortunes.at(qrand() % fortunes.size());
out.device()->seek(0);
out << (quint16)(block.size() - sizeof(quint16));
tcpSocket->write(block);
connect(tcpSocket,SIGNAL(bytesWritten(qint64)),this,SLOT(flag()));
}
void Server::readFortune(){
QDataStream in(tcpsocket);
in.setVersion(QDataStream::Qt_4_2);
if (blockSize == 0) {
if (tcpsocket->bytesAvailable() < (int)sizeof(quint16))
return;
in >> blockSize;
}
if (tcpsocket->bytesAvailable() < blockSize)
return;
QString nextFortune;
in >> nextFortune;
currentFortune = nextFortune;
}
我已作了检测客户端没写数据,服务器的tcpsocket::readyRead()也没有触发,多谢了!