Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Ввод/Вывод, Сеть. Межпроцессное взаимодействие _ Запуск консольного приложения извне и работа с сокетами

Автор: Rio9 5.5.2010, 13:34

Всем привет.
Есть основное приложение, и три маленьких консольных экзешника.
Задача: по нажатию кнопки в основном приложении запустить соответствующий экзешник и передать ему некую информацию. Передача параметрами при запуске экзешника по непонятным причинам не устраивает. Нужно передать по сокету. прошу помощи.
Основная программа:

QProcess p;
p.startDetached("mark.exe");
socket->connectToHost(QHostAddress::LocalHost, port);
socket->write(data);

второй экзешник:
    if (!serv->listen(QHostAddress::Any, 8001))
        cout << "Error! No connection" << endl;
    while(1)
        if (serv->waitForNewConnection(500))
            newcon(serv);
...
void newcon(QTcpServer *tcpServer)
{
    QTcpSocket  *clientSocket= tcpServer->nextPendingConnection();
    QByteArray ar;
    ar.append(clientSocket->readAll());
    cout << ar.count(); // выводит 0
}


догадываюсь что что-то делаю не так, прошу указать что не так и как правильно.

З.Ы. В GUI-приложениях связывал сигнал readyRead() и там уже делал обработчик, а тут как?

Автор: Litkevich Yuriy 5.5.2010, 14:11

Цитата(Rio9 @ 5.5.2010, 17:34) *
З.Ы. В GUI-приложениях связывал сигнал readyRead() и там уже делал обработчик, а тут как?
а какая разница консольное или графическое приложение?

Автор: Rio9 5.5.2010, 14:30

Цитата(Litkevich Yuriy @ 5.5.2010, 15:11) *
Цитата(Rio9 @ 5.5.2010, 17:34) *
З.Ы. В GUI-приложениях связывал сигнал readyRead() и там уже делал обработчик, а тут как?
а какая разница консольное или графическое приложение?

Кути ругается, и говорит что функции connect() не знает.

Я вообще только начал в эту кухню окунаться, разбираюсь методом тыка, поэтому могу чего-то не знать)

Автор: kibsoft 5.5.2010, 14:36

Цитата(Rio9 @ 5.5.2010, 15:30) *
Цитата(Litkevich Yuriy @ 5.5.2010, 15:11) *
Цитата(Rio9 @ 5.5.2010, 17:34) *
З.Ы. В GUI-приложениях связывал сигнал readyRead() и там уже делал обработчик, а тут как?
а какая разница консольное или графическое приложение?

Кути ругается, и говорит что функции connect() не знает.

Я вообще только начал в эту кухню окунаться, разбираюсь методом тыка, поэтому могу чего-то не знать)

QObject::connect попробуй так..

Автор: Rio9 5.5.2010, 14:48

Цитата(kibsoft @ 5.5.2010, 15:36) *
QObject::connect попробуй так..

пробовал. Не канает.

Автор: Litkevich Yuriy 5.5.2010, 15:08

Цитата(Rio9 @ 5.5.2010, 18:30) *
Кути ругается, и говорит что функции connect() не знает.
эта функция объявлена в классе QObject, соответствующий заголовочник должен быть подключен

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)