5

C#で名前付きパイプを使用したプロセス間通信は簡単ですが、phpでこれを行う方法、または可能かどうかは正確にはわかりません。だから私はこれらの質問があります:

  1. PHPで名前付きパイプは可能ですか?
  2. C# 名前付きパイプ クライアントを使用して、php 名​​前付きパイプ サーバーに接続することは可能ですか?
  3. どのように私はそれをコーディングしますか?:)

上記の質問のいずれかへの回答はとても役に立ちます..ありがとう:)

編集: Web ベースのアプリではなく、スタンドアロンの php プログラムです。

edit2:名前付きパイプ サーバーは、C# 側でも PHP 側でもどちらでもかまいません。私は両方のC#の例を作成しました..しかし、PHPのどこから始めるべきかわかりません

4

2 に答える 2

4

既に作成されている場合は、PHP のfopen関数を使用して名前付きパイプをファイルとして開くことができます。

Windows では、パイプの「ファイル」パスは「\\.\pipe\pipe_name」のようになりますが、PHP にはこれが機能しない未解決の問題があります。回避策は、パスのドットの代わりにコンピューターの名前を使用することです。

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

私は Tommy が推奨するようなソケットに投票しますが、それらは簡単で、クロスプラットフォームであり、必要に応じてマシン間でも使用できます。

于 2010-09-02T01:31:10.333 に答える
2

ソケットは使えますか?なぜそれはパイプでなければならないのですか?

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#)を使用していると想定しているため、機能しない場合があります....

于 2010-09-02T01:21:16.123 に答える