Всем привет! У меня очередная проблема, боролся месяц, сам не смог победить. Хабр, друзья и другой форум не помогли

. Итак, у меня есть во Flash:

Код AS3:
public function dataWrite(e:Event):void {
clientSocket.writeUTFBytes(fieldToWrite.text);//сокет, подключенный к серву на QT
clientSocket.flush();
trace(clientSocket.bytesAvailable, clientSocket.connected);
fieldToWrite.text = "";//текстовое поле, из которого берем строку для передачи
fieldToWrite.setFocus();
}
И код функции на сервере, которая должна срабатывать каждый раз, когда любой из клиентов посылает строчку:

Код:
void multiServer::sendDataToForm(int socDesc, QString txt)
{
qDebug()<<listOfThreads.size(); //листстредов - всех клиентов, выводим его размер
qDebug()<<txt;//считанный с любого из клиентов текст
QString txt2 = QString::number(socDesc) + ";" + txt;
emit sendingData(MainWindow::DATAINCOME,txt2);//отправляем считанный текст в гуи
for (int i = 0;i<listOfThreads.size();i++) //цикл отправки всем клиентам сообщения
{
QByteArray myByteArray;
//отправляем
listOfThreads[i]->socket->write(myByteArray.append(QString("Client written;") + QString::number(socDesc) + ";" + txt));
qDebug()<<myByteArray;
}
}
Проблема в следующем: если отсутствует цикл, то сервер считывает все сообщения прекрасно, но, естественно, ничего не отсылает назад. Если цикл есть, то сервер считывает первое сообщение, отсылает его всем клиентам и больше не может считать ни одного сообщения, кроме вновь подключившегося клиента. Добавление в цикл для сокета функций waitforreadyread() и flush() не помогло. Прошу вашей помощи. Спасибо за внимание.
P.S. Если нужен другой код (объявление треда или код самого треда и так далее, готов предоставить. Но проблема именно в цикле/отправке данных обратно на клиент).