Я переопределил вывод в стандартный поток и т.к. программа будет запускаться на удаленном устройстве, то хочу чтоб к устройству можно было подключиться телнетом или нк и посмотреть отладочный вывод, хочу это сделать примерно таким образом:
#include <QCoreApplication>
#include <QDebug>
#include <QDateTime>
#include <QTimer>
//#define REMOTE
QTextStream *out;
void logOutput(QtMsgType type, const char *msg)
{
QString debugdate = QDateTime::currentDateTime().toString("yyyy.MM.dd hh:mm:ss.zzz");
*out << debugdate << " " << type << msg << endl;
}
int main(int argc, char *argv[])
{
int i;
QCoreApplication a(argc, argv);
#ifndef REMOTE
QTextStream console(stdout);
#else
QIODevice *remote = new MyDevice();
QTextStream console(remote);
#endif
out = &console;
qInstallMsgHandler(logOutput);
for(i=0;i<10;i++){
qDebug() << i;
}
// QTimer *timer = new QTimer();
// a.connect(timer, SIGNAL(timeout()), &a, SLOT(quit()));
// timer->start(1000);
a.exec();
return 0;
}
А в чем проблема, почитай как работать с потоками (QThread) и дерзай!
Проблема была в том что непонятно было как сделать так чтоб с ТСР сервером и соотв сокетом можно было работать как с IODevice. Оказалось что надо унаследовать QIODevice, определить нужные виртуальные методы и запустить все это дело в потоке.
Извини, не сразу тебя понял.
Так QTcpSocket производен от QAbstractSocket, который производен от QIODevice.
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)