在C#+ PHP中使用命名管道进行进程间通信
使用C#中的命名管道进行进程间通信很简单,但我不确定如何在php中执行此操作,或者甚至可能。 所以我有这些问题:
- 在php中可以命名管道吗?
- 是否可以拥有一个C#命名管道客户端,连接到php命名管道服务器?
- 我怎么编码呢? 🙂
对上述任何问题的回答都会非常有用..谢谢:)
编辑:它是一个独立的PHP程序,而不是一个基于Web的应用程序。
edit2:命名管道服务器可以在C#端,或者在PHP端,它没关系。 我已经为这两个做了C#示例..但我不知道从哪里开始为php
你能用套接字吗? 为什么它必须是管道?
看起来PHP有很多套接字: http : //us3.php.net/sockets
流function:
http://php.net/manual/en/ref.stream.php
你看到了吗?
PHP和命名管道: http : //my.opera.com/zomg/blog/2007/08/29/php-and-named-pipes
posix_mkfifo:
http://www.phpbuilder.com/manual/function.posix-mkfifo.php
编辑我假设你在Windows(C#),所以可能无法正常工作….
如果它已经创建,那么您可以使用PHP的fopen
函数打开命名管道作为文件。
在Windows中,管道“文件”路径看起来像“\\。\ pipe \ pipe_name”,但PHP中存在一个打开的问题 ,导致无法正常工作。 解决方法是使用计算机的名称而不是路径中的点:
$name = php_uname('n'); $pipe = fopen("\\\\" . $strComputername . "\\pipe\\pipe_name", "r+");
虽然我投票支持像Tommy推荐的套接字,但如果需要,它们很容易,跨平台,并且在机器间。