我似乎无法从PHP多次打开Windows命名pipe道:
$pipe1 = fopen($pipeName, 'r+'); // (1) fclose($pipe1); $pipe2 = fopen($pipeName, 'r+'); // (2) fclose($pipe2);
(1)成功 ,我可以写入pipe道或打开阻塞读取它。
(2)失败
fopen(\\。\ pipe \ encoding):无法打开stream:无效的参数
“无效论证”似乎指的是模式 ,但是我尝试了(1)和(2)之间所有不同的模式组合,没有区别。 无论是在同一个进程还是另一个进程,它也会失败。
我正在创buildpipe道:
CreateNamedPipe("\\\\.\\pipe\\encoding", 3, 0, 5, 512, 512, 0, 0);
其中“3”使其成为读/写pipe道,“5”是可以创build的最大实例数。 我已经尝试了CreateNamedPipe的参数的不同组合,无济于事。
有什么特别的我错过了Windows命名pipe道?
“服务器进程必须调用DisconnectNamedPipe才能断开与之前的客户端的管道句柄,然后才能使用ConnectNamedPipe函数将句柄连接到另一个客户端。