QT中QTcpSocket的write函数问题
int TSocket::sendPackage(quint8 ucCommand, int nDataSize, const QByteArray &bytesData)
{
QByteArray bytesSend;
bytesSend.append(byteToBytes(ucCommand));
bytesSend.append(intToBytes(nDataSize));
bytesSend.append(bytesData);
if (write(bytesSend) == -1)
{
qDebug()<<"send package failed";
return -1;
}
emit sigSize(nDataSize);
qDebug("send package command:0x%x size:%d", ucCommand, nDataSize);
return 0;
}
当传送文件时,会发现每次调用write(bytesSend) 都会把bytesSend写入socket缓存中,无论多大文件,如果每次调用waitForWriten()函数,效率很低,求解决办法!