QSocket的问题bytesAvailable()和readyread()有什么不同?
我在tcp已经设置好套接字,使用connect(tcp, SIGNAL(readyRead()), this, SLOT(readTcp()));
后跟一段代码,如下:
while(udt->isConnected())
{
qint64 size = udt->recv(data);//udt之前已经设置定义好了,可以读数据。
tcp->write(data.data(), size);
if (tcp->bytesAvailable() > 0)
{
h = tcp->readLine();
header += h;
if (h.size() == 2)
{
udt->write(header);
header.clear();
}
}
tcp->waitForBytesWritten();
}
然后我定义槽函数readTcp(){QByteArray data = tcp->readAll();}
那么,tcp有数据来的时候,我在readTcp()读取还是在 if (tcp->bytesAvailable() > 0) 使用h = tcp->readLine()下读取??readyRead和bytesAvailable中什么不同