Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как сделать удаленную отладочную консоль?
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Ввод/Вывод, Сеть. Межпроцессное взаимодействие
reeshkov
Я переопределил вывод в стандартный поток и т.к. программа будет запускаться на удаленном устройстве, то хочу чтоб к устройству можно было подключиться телнетом или нк и посмотреть отладочный вывод, хочу это сделать примерно таким образом:
#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;
}

Помогите написать класс "MyDevice", он должен запускаться в отдельном потоке чтоб не блокировалась работа основоного приложения, ждать соединения на TCP порту, если соединение существует то закрывать старое, и в сокет соединеия, если оно существует писать отладочный вывод.
terrible
А в чем проблема, почитай как работать с потоками (QThread) и дерзай!
reeshkov
Проблема была в том что непонятно было как сделать так чтоб с ТСР сервером и соотв сокетом можно было работать как с IODevice. Оказалось что надо унаследовать QIODevice, определить нужные виртуальные методы и запустить все это дело в потоке.
terrible
Извини, не сразу тебя понял.

Так QTcpSocket производен от QAbstractSocket, который производен от QIODevice.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.