LINUX.ORG.RU

История изменений

Исправление alex_custov, (текущая версия) :

Можно сделать так. Коннектишь сигнал о приходе данных от TCP клиента к слоту. Вызываешь exec(). Сигнал приходит и вызывается слот. В слоте читаешь эти данные и делаешь quit(N).

Как-то так (у меня sslsocket):

void Thread::run()
{
    QSslSocket socket;
    ...
    connect(&socket, SIGNAL(bytesAvailable..., SLOT(slotBytes()));

    while(true)
    {
      switch(exec())
      {
          case 1:
              buffer = socket.readAll();
          break;
      }
    }
}

void Thread::slotBytes()
{
    quit(1);
}

Можно коннектить не к слоту, а сразу к quit(), если кроме прихода данных тебе никаких сигналов не нужно. Кривовато, но что поделаешь.

Исходная версия alex_custov, :

Можно сделать так. Коннектишь сигнал о приходе данных от TCP клиента к слоту. Вызываешь exec(). Сигнал приходит и вызывается слот. В слоте читаешь эти данные и делаешь quit(N).

Как-то так (у меня sslsocket):

void Thread::run()
{
    QSslSocket socket;
    ...
    connect(&socket, SIGNAL(bytesAvailable..., SLOT(slotBytes()));

    while(true)
    {
      switch(exec())
      {
          case 1:
              buffer = socket.readAll();
          break;
      }
    }
}

void Thread::slotBytes()
{
    quit(1);
}

Кривовато, но что поделаешь.