Название: Клиент-Серверная связка Отправлено: Aftor от Август 01, 2011, 11:27 Добрый день
Есть два приложения, написаных на qt, подскажите как можно из одного приложения (серверного) управлять другим приложением (клиентским). под управлять я иммею ввиду выполнение слотов клиентского приложения на сигнал серверного. Буду благодарен за полезные ссылки, описание методов решения проблемы и др. Название: Re: Клиент-Серверная связка Отправлено: Пантер от Август 01, 2011, 11:32 Соединяй их через сокет.
Посмотри Fortune Server Example. Название: Re: Клиент-Серверная связка Отправлено: kuzulis от Август 01, 2011, 11:45 ТС, поиск по форуму и в гугле рулит!
Название: Re: Клиент-Серверная связка Отправлено: Aftor от Август 01, 2011, 11:51 подкиньте ссылочек на рускоязычные ресурсы.
Документация по Fortune Server Example в гугле ток на инглише. Название: Re: Клиент-Серверная связка Отправлено: Aftor от Август 02, 2011, 11:34 Попробовал разобраться с Fortune Server - Fortune Client.
Ток основного по ходу так и не понял. как происходит передача fortunes из сервера в строку nextFortune клиенту? Не могли бы вы помочь со следующими функциями? Код
И как по аналогии с этим можно через два потока в разных приложениях связать сигнал одного приложения со слотом другого? Название: Re: Клиент-Серверная связка Отправлено: Странник от Август 02, 2011, 12:04 Добрый день можно использовать D-Bus (http://ru.wikipedia.org/wiki/D-Bus), в примерах dbus посмотри.Есть два приложения, написаных на qt, подскажите как можно из одного приложения (серверного) управлять другим приложением (клиентским). под управлять я иммею ввиду выполнение слотов клиентского приложения на сигнал серверного. Буду благодарен за полезные ссылки, описание методов решения проблемы и др. но на сокетах универсальнее, подходящий под это дело пример local fortune лежит в папке ipc. Название: Re: Клиент-Серверная связка Отправлено: Fess от Август 02, 2011, 12:15 Посмотрите на вот это решение:
http://libqxt.bitbucket.org/doc/tip/qxtrpcpeer.html Название: Re: Клиент-Серверная связка Отправлено: Aftor от Август 02, 2011, 13:05 Как я понял механизм работы приложений Fortune server и Fortune client на doc.qt.nokia.com:
С клиентского приложения идет коннект к серверу На серверно приложении выполняется слот sendFortune() после connect(server, SIGNAL(newConnection()), this, SLOT(sendFortune())); В sendFortune() создается поток "out" В который записываются некоторые данные В клиентском приложении после коннекта к серверу вызывается readFortune(), где создается поток "in" в который каким-то образом передаются данные из потока "out" и благополучно меняется строка состояния на ту, что пришла от клиента. Правильно ли я понял как это работает? Каким образом передаются данные из одного потока в другой? И как я могу соеденить сигнал с сервера и слот клиента? Название: Re: Клиент-Серверная связка Отправлено: Странник от Август 02, 2011, 13:31 Как я понял механизм работы приложений Fortune server и Fortune client на doc.qt.nokia.com: в общем верно, данные передаются через сокет. сигнал и слот таким образом не соединить, можно реализовать обмен сообщениями, а остальное дописывать уже самостоятельно.С клиентского приложения идет коннект к серверу На серверно приложении выполняется слот sendFortune() после connect(server, SIGNAL(newConnection()), this, SLOT(sendFortune())); В sendFortune() создается поток "out" В который записываются некоторые данные В клиентском приложении после коннекта к серверу вызывается readFortune(), где создается поток "in" в который каким-то образом передаются данные из потока "out" и благополучно меняется строка состояния на ту, что пришла от клиента. Правильно ли я понял как это работает? Каким образом передаются данные из одного потока в другой? И как я могу соеденить сигнал с сервера и слот клиента? если аналог сигнал-слотового соединения нужен из коробки - DBus или предложеный выше QxtRpcPeer. Название: Re: Клиент-Серверная связка Отправлено: Aftor от Август 02, 2011, 13:47 То есть я могу сделать структуру следующей:
Нужный мне сигнал в приложении сервера соединяю с аналогом функции sendFortune (посылаю сообщение) В приложении клиенте к сигналу сокета readyRead присоединяю аналог функции readFortune в которой анализирую пришедшее сообщение и делаю в соответствии с этим emit нужного мне сигнала у клиента? Еще вопрос на какие действия у tcpServer генерируется сигнал readyRead у tcpSocket? Название: Re: Клиент-Серверная связка Отправлено: Fess от Август 02, 2011, 13:56 То есть я могу сделать структуру следующей: Примерно так, только в Qxt это все уже сделано за вас..Нужный мне сигнал в приложении сервера соединяю с аналогом функции sendFortune (посылаю сообщение) В приложении клиенте к сигналу сокета readyRead присоединяю аналог функции readFortune в которой анализирую пришедшее сообщение и делаю в соответствии с этим emit нужного мне сигнала у клиента? Еще вопрос на какие действия у tcpServer генерируется сигнал readyRead у tcpSocket? http://doc.qt.nokia.com/latest/qiodevice.html#readyReadНазвание: Re: Клиент-Серверная связка Отправлено: Aftor от Август 02, 2011, 14:00 Цитировать Примерно так, только в Qxt это все уже сделано за вас.. Что такое Qxt и где я могу про это почитать?Название: Re: Клиент-Серверная связка Отправлено: TaIRou от Август 02, 2011, 14:28 Цитировать Примерно так, только в Qxt это все уже сделано за вас.. Что такое Qxt и где я могу про это почитать?привет! Посмотрите на вот это решение: http://libqxt.bitbucket.org/doc/tip/qxtrpcpeer.html |