Межпроцессное общение с использованием именованных каналов на C # является простым, но я не совсем уверен, как это сделать в php, или если это возможно. поэтому у меня есть следующие вопросы:
ответ на любой из вышеуказанных вопросов был бы так полезен .. спасибо 🙂
edit: это отдельная программа php, а не веб-приложение.
edit2: Именованный канал pipe может быть на стороне C # или стороне PHP, это не имеет значения. Я сделал примеры C # для обоих. Но я не знаю, с чего начать для php
Можете ли вы использовать сокеты? Почему это должна быть труба?
Похоже, PHP имеет много для сокетов: http://us3.php.net/sockets
Функции потока:
http://php.net/manual/en/ref.stream.php
Ты видел это?
PHP и именованные каналы: http://my.opera.com/zomg/blog/2007/08/29/php-and-named-pipes
<?php //Open pipe and write some text to it. //Mode must be r+ or fopen will get stuck. $pipe = fopen('testpipe','r+'); fwrite($pipe,'this is some text'); fclose($pipe); ?>
posix_mkfifo:
http://www.phpbuilder.com/manual/function.posix-mkfifo.php
EDIT Я предполагаю, что вы находитесь на окнах (C #), чтобы они не работали.
Если он уже создан, вы можете открыть именованный канал в виде файла с помощью функции fopen
PHP.
В окнах путь к файлу «файл» выглядит как «\\. \ Pipe \ pipe_name», однако в PHP есть открытая проблема, которая мешает этому работать. Обходным путем является использование имени компьютера вместо точки в пути:
$name = php_uname('n'); $pipe = fopen("\\\\" . $strComputername . "\\pipe\\pipe_name", "r+");
Хотя я голосую за сокеты, как рекомендовал Томми, они легки, кросс-платформенны и могут взаимодействовать друг с другом в случае необходимости.