私は一度PHPからより多くのWindows名前付きパイプ開くように見えることはできません。名前付きパイプを複数回開くことができないのはなぜですか?
$pipe1 = fopen($pipeName, 'r+'); // (1)
fclose($pipe1);
$pipe2 = fopen($pipeName, 'r+'); // (2)
fclose($pipe2);
を(1)を成功し、私は、パイプへの書き込みや、それに読んでブロッキングを開くことができます。
は(2)
のfopen(\\ \パイプ\エンコーディング。)でを失敗:ストリームをオープンに失敗しました:無効な引数
"無効な引数が" 参照しているようですモードに変更しましたが、(1)と(2)の間でモードの異なる組み合わせを試しましたが、違いはありません。また、同じプロセスか別のプロセスかにかかわらず失敗します。
私はパイプを作成しています:
「3」はそれを読み取り/書き込みパイプを行い、5「」を作成することができるインスタンスの最大数があるCreateNamedPipe("\\\\.\\pipe\\encoding", 3, 0, 5, 512, 512, 0, 0);
。私はCreateNamedPipeの引数の異なる組み合わせを試してみましたが、無駄です。
Windowsの名前付きパイプには何か特別なものがありますか?
"ConnectNamedPipe関数を使用してハンドルを別のクライアントに接続するには、前のクライアントからパイプハンドルを切断するためにサーバープロセスがDisconnectNamedPipeを呼び出す必要があります。 –
@ antti.huima:それは私の問題だった、ありがとう! (本当の答えを書き留めてください!) – ladenedge
LOL ok ................ –