Межпроцессное взаимодействие с использованием именованных каналов в C # + PHP - PullRequest
4 голосов
/ 02 сентября 2010

Межпроцессное взаимодействие с использованием именованных каналов в C # легко, но я не совсем уверен, как это сделать в php, или, если это вообще возможно.поэтому у меня есть следующие вопросы:

  1. Возможно ли именованные каналы в php?
  2. Возможно ли иметь клиент именованного канала C #, подключаться к серверу именованных каналов php?
  3. как, черт возьми, я это закодирую?:)

ответом на любой из приведенных выше вопросов будет , поэтому полезно ... спасибо:)

edit: Этоавтономная программа php, а не веб-приложение.

edit2: Сервер именованных каналов может находиться на стороне C # или на стороне PHP, это не имеет значения.Я сделал C # примеры для обоих .. но я не знаю, с чего начать для php

Ответы [ 2 ]

4 голосов
/ 02 сентября 2010

Если он уже создан, вы можете открыть именованный канал в виде файла, используя функцию PHP fopen.

В Windows путь к «файлу» канала выглядит как «\\. \ Pipe \ pipe_name», однако в PHP есть открытый выпуск , который мешает этому работать. Обходной путь должен использовать имя компьютера вместо точки в пути:

$name = php_uname('n');
$pipe = fopen("\\\\" . $strComputername . "\\pipe\\pipe_name", "r+");

Несмотря на то, что я голосую за сокеты, как рекомендовал Томми, они просты, кроссплатформенны и при необходимости могут быть межмашинными.

2 голосов
/ 02 сентября 2010

Можно ли использовать розетки? Почему это должна быть труба?

Похоже, в 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

РЕДАКТИРОВАТЬ Я предполагаю, что вы находитесь на Windows (C #), так что может не работать ....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...