Russian Qt Forum
Ноябрь 23, 2024, 12:01 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: PHP->Qt->PHP. Взаимодействие php и Qt. Как?  (Прочитано 14066 раз)
AAXEE
Гость
« : Ноябрь 30, 2009, 13:19 »

Здравствуйте!
Такая проблема.
Есть веб-сервер. На нем нужно запустить приложение, которое обрабатывает данные, поступающие от клиентов и  возвращающее им результат. Клиенты браузерные.
Если задачу упростить, то имеем вот что:
send.html в нем форма для ввода строки и кнопка Submit. По нажатию на кнопку данные отправляются в send.php.
send.php должен каким-то образом передать строку приложению на Qt.
Qt приложение обработает эту строку и где-то у себя сохранит результат( или сразу отправит?)
Далее есть receive.php. По нажатию кнопки он должен забрать результат у Qt и отобразить.

Как передать данные от php к Qt ? От Qt к php?
Мне кажется здесь необходимо использовать QHttp. Но плохо представляю как.
И возможно ли это вообще?
Подскажите куда копать. И небольшой примерчик хотелось бы.
Спасибо!

PS: как вариант можно вообще отказаться от Qt: всю обработку выполнить скриптом php. Но как отправить потом? Использовать для сохранения базу данных или файл неприемлемо.
Записан
andrewshkovskii
Гость
« Ответ #1 : Ноябрь 30, 2009, 13:49 »

http://ru.wikipedia.org/wiki/PHP-Qt
 ?
Записан
AAXEE
Гость
« Ответ #2 : Ноябрь 30, 2009, 17:23 »

На сколько я понял, это не то. Оно просто позволяет писать GUIшные приложения на пхп.
Записан
ecspertiza
Супер
******
Offline Offline

Сообщений: 1053


С уважением, мастер конфетного цеха!


Просмотр профиля
« Ответ #3 : Ноябрь 30, 2009, 22:08 »

Почитай про протокол SOAP ,может поможет чем.
Записан
fightcat
Гость
« Ответ #4 : Декабрь 01, 2009, 16:38 »

Тут, если я правильно понял, многое зависит от самого Qt-приложения. Это сервис, или просто приложение? Данные оно получает через командную строку или как-то иначе?

Если это Ваше приложение - стоит посмотреть в сторону веб-сервиса. Клиентов для веб-сервисов в php хватает.

Пример можно посмотреть тут: http://efforts.embedded.ufcg.edu.br/qt/?p=143
Записан
AAXEE
Гость
« Ответ #5 : Декабрь 01, 2009, 17:12 »

Всем спасибо.
Остановился на варианте без Qt. Чистый пхп. Данные сохраняю в heap-таблице.
Записан
vitaliy
Гость
« Ответ #6 : Декабрь 24, 2013, 15:26 »

я, конечно, понимаю, что я люто вовремя, но может кому пригодиться)

самый дешевый и оптимальный способ - имхо это tcp или udp сокеты.
например так:
php:
Код:
	public function sendToHandler($configStr)
{
$srvIP = '127.0.0.1';
$srvPort = 7755;
$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
$result = socket_connect($socket, $srvIP, $srvPort);
$len = strlen($configStr);
socket_send($socket, $configStr, $len, 0);
}
qt c++:
Код:
ConnectToPHP::ConnectToPHP(QObject *parent) :
QObject(parent)
{
udpSocket = new QUdpSocket();
udpSocket->bind(QHostAddress::LocalHost, 7755);
connect(udpSocket, SIGNAL(readyRead()), this, SLOT(readData()));

treadPool = new QThreadPool(this);
}

void ConnectToPHP::readData()
{
while (udpSocket->hasPendingDatagrams())
{
QByteArray datagram;
datagram.resize(udpSocket->pendingDatagramSize());
QHostAddress sender;
quint16 senderPort;

udpSocket->readDatagram(datagram.data(), datagram.size(), &sender, &senderPort);
Runable* newRun = new Runable();
newRun->setConfig(QString(datagram));
newRun->run();
}
}
« Последнее редактирование: Декабрь 24, 2013, 15:29 от vitaliy » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.056 секунд. Запросов: 23.