Делимся секретами создания сайтов

запуск удалённого процесса

Пусть есть некая програмка (q.exe) на вход которой с клавиатуры вводится число, на выходе (на экран) выдаёт введёное число увеличенное на единицу. Эта программа, клиентом, вызывается на удалённом сервере.Ниже приведён код.

Но поочему-то не работает.... не могу понять... то есть какбуд-то число не вводится....

если кому не сложно помогите.

<?php
$num = 5;
$descriptorspec = array(
0 => array("pipe", "r"),
1 => array("pipe", "w"),
2 => array("file", "./error.txt", "a")
);

$process = proc_open("q.exe", $descriptorspec, $pipes);

if (is_resource($process)) {

fwrite($pipes[0], $num);
$result = stream_get_contents($pipes[1]);

echo $result;
fclose($pipes[0]);
fclose($pipes[1]);

proc_close($process);
}
?>

Ответы: 21 → “запуск удалённого процесса”

  1. Ronaldinho Gausu Ответить

    Какой Саша умный, однако!

  2. Денис Федоренко Ответить

    программа – экзешник
    А сервер на какой операционной системе работает?

  3. Игорь Ряховский Ответить

    ))) мухахах
    весело будет если юниксовый

  4. Sasha Shadrin Ответить

    разумеется винда))))

  5. Sasha Shadrin Ответить

    если я считываю данные, то всё прекрасно работает….
    а вот записать и чтоб они обработались не получается(((

  6. Игорь Ряховский Ответить

    эм я немного не допер проблемы
    но любой вывод можно перехватить кешированием

    <?php
    ob_start();
    //тут твои функции
    $res = ob_get_contents(); ob_end_clean();
    ?>

  7. Игорь Ряховский Ответить

    мдя намудрил ты ужас как…
    ващет в MSDOS есть такая штука как перенаправление

    ты не пробывал q.exe < file.txt …

  8. Игорь Ряховский Ответить

    у меня прада к тебе один вопрос
    зачем тебе это надо????

    нет я конечно на web шеллах юзаю линуксовые комманды
    но там у них есть параметры

    если ты разработчик проги q.exe селай ей входные данные … ну там ключи например…

  9. Плиско Вячеслав Ответить

    Исходя из личного опыта. Если вдруг нужно на виндошном сервере запускать прогу либо это делается для забавы, либо это современый хацкерский софт. Прошли времена, когда хацкеры знали что такое *nix :(

  10. Игорь Ряховский Ответить

    Возможно они еще не прошли… но люди пишушие сплоиты пишут его для народа на С/C++ выкладывают исходники… продвинуты пользователи компилят их в винде и распростроняют прожки в нете… а вот кто-то пользуется этим….я так думаю

  11. Sasha Shadrin Ответить

    на самом деле всё много проще… это является не более чем учебным примером, и я просто хочу разобраться!!!!

    1)у меня есть два массива данных X и Y описывающих поведение некой функции
    2) мне нужно просто посчитать оперделённый интеграл

    для подсчта интеграла я пишу програмку на Fortran'e (можно на С…не суть важно)
    данные поступают от клиента на сервер, результат интегрирования возвращается клиенту.

    сначало я записывал данные в текстовый файл, а потом запускап програму из PHP, после чего резудьтат возвращался клиенту.

    сейчас же мне интересно направить данные непосредственно из PHP на поток ввода этой самой програмки….без какого-либо посредника: текстового файла, xml – файла, и т.д
    (вот здесь то и проблема… поэтому я взял этот тестовый пример с увеличением числа на 1 q.exe)

  12. Sasha Shadrin Ответить

    не спрашивайте зачем это надо просто…. хочется разобраться
    я в этом деле дилитант и занимаюсь самостоятельно, если у вас есть литература- выложите ссылки!!!!!

  13. Игорь Ряховский Ответить

    эм
    могу предположить 2 решение

    1 ты берешь алгоритм своей программки интегральной и переносишь его на php => тебе не надо заморачиватся
    2 или же ты делаешь свою прграмму так, что данные она считывает не из ввода а например из тексового файла… и вывод тоже в текстовый файл…
    тогда на php у тебя будт формироватся файл ввода и патом анализироватся файл вывода твоей программы.

  14. Sasha Shadrin Ответить

    ммм.. ну это-то как раз не сложно и понятно… черз текстовый файл можно сделать….но это не интересно

    в данном случае интересна именно скорость вычисления и точность))
    вот я подумал вычислительное ядро реализовать на компилированном коде!!!

    два процесса же могут как-то общатся (не через текстовый файл!!!)….. значит есть всё-таки решение))))

  15. Alexandr Arutyunov Ответить

    это бред.

  16. Sasha Shadrin Ответить

    2 Alexandr Arutyunov: что именно?

  17. Плиско Вячеслав Ответить

    точность вычисления не зависит от языка.
    а вот про скорость – это правильно подметил, нормальные проекты всегда используют больше одного языка. кстати, на си можно написать экстеншин под рнр.
    а вот про взаимодействие программ можно подумать ещё. неужели в голову больше ничего не приходит?

  18. Alexandr Arutyunov Ответить

    бред вот какой фигней занимаца – вызывать из пхп прогу.

    взаимодействие уж точно должно быть не таким ))

  19. Sasha Shadrin Ответить

    2 Alexandr Arutyunov: ну хорошо, что конкретно ты можешь предложить???

  20. Alexandr Arutyunov Ответить

    вот так абстрактно – ничего.

    зависит от конкретных задач (так и надо решать)

    абстрактно, для большой "скорости" (+ некое удобство) – могу посоветовать учить python и его фреймворк django
    его ща используют в новых проектах Яндекса, а это уже показатель…

  21. Плиско Вячеслав Ответить

    я бы продпочёл сокеты.
    у питона есть свои плюсы и минусы, но в данном случае непонятно, чем он лучше связки РНР+Другой_Язык

Ответить