在 C# 中使用命名管道进行进程间通信很容易,但我不确定如何在 php 中执行此操作,或者是否可能。所以我有这些问题:
- php中可以命名管道吗?
- 是否有可能有一个 C# 命名管道客户端,连接到一个 php 命名管道服务器?
- 我怎么会编码呢?:)
上述任何问题的答案都会很有帮助..谢谢:)
编辑:它是一个独立的 php 程序,而不是基于 Web 的应用程序。
edit2:命名管道服务器可以在C#端,也可以在PHP端,没关系。我已经为两者制作了 C# 示例.. 但我不知道从哪里开始 php
在 C# 中使用命名管道进行进程间通信很容易,但我不确定如何在 php 中执行此操作,或者是否可能。所以我有这些问题:
上述任何问题的答案都会很有帮助..谢谢:)
编辑:它是一个独立的 php 程序,而不是基于 Web 的应用程序。
edit2:命名管道服务器可以在C#端,也可以在PHP端,没关系。我已经为两者制作了 C# 示例.. 但我不知道从哪里开始 php
fopen
如果它已经创建,那么您可以使用 PHP 的函数将命名管道作为文件打开。
在 Windows 中,管道“文件”路径看起来像“\\.\pipe\pipe_name”,但是 PHP 中有一个未解决的问题会阻止它工作。解决方法是使用计算机名称而不是路径中的点:
$name = php_uname('n');
$pipe = fopen("\\\\" . $strComputername . "\\pipe\\pipe_name", "r+");
尽管我投票支持 Tommy 推荐的套接字,但它们很简单,可以跨平台,并且如果需要可以跨机器。
可以用插座吗?为什么它必须是管道?
看起来 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#) 上,所以这可能不起作用....