QList<QTcpSocket*>::iterator it=ipAddress->begin();
for(; it != ipAddress->end(); ++it){
pSocket = *it;
QByteArray arrBlock;
QDataStream out(&arrBlock, QIODevice::WriteOnly);
out.setVersion(QDataStream::Qt_4_5);
out << quint16(0);
out << quint8(type);
out << "" + text;
out.device()->seek(0);
out << quint16(arrBlock.size() - sizeof(quint16));
pSocket->write(arrBlock);
}
Верно ли я понимаю работу данного кода: Предположим у нас есть 3 клиента.
1 - пинг 15
2 - пинг 300
3 - пинг 10
В листе они расположены так же. Т.е. цикл начнется с первого.
Отправили данные первому, ждем подтверждения о получении. Потом наичнаем отправлять второму и т.д.
в итогде время между приходом сообщения и получением его адресатами получается такое (в идеале, учитываем только сеть):
1-15
2-315
3-325
Верно ли это? Если да то как можно решить это проблему не используя потоки и новые сокеты. Если есть такое решение вообще. Я просто не до конца понимаю концепции синхронных и асинхронных сокетов.