問題タブ [named-pipes]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
1166 参照

perl - Perlを介してプログラムでインタラクティブなUnixアプリケーションを制御するにはどうすればよいですか?

ベンダーによってサポートされなくなった20年前のインタラクティブなコマンドラインUNIXアプリケーションを継承しました。このアプリケーションでは、いくつかのタスクを自動化する必要があります。

これらの中で最も厄介なのは、わずかに異なるパラメータ(たとえば、異なる識別子、異なる名前)を使用して何千もの新しいレコードを作成することです。レコードは一度に1つずつ順番に作成する必要があり、手動で作成するには数か月(したがって数ドル)かかります。ほとんどの場合、レコードの作成には、コマンドの入力、応答の読み取り、追加のコマンドの入力などの非常に予測可能なパターンがあります。ただし、一部のレコード作成操作では、次のようなエラー状態(「この識別子を持つレコードは既に存在します」)が発生します。正常に終了する別のコマンドセット。

私はこれを行うためのいくつかの異なる方法を見ることができます:

  • 名前付きパイプ。STDINとSTDOUTを名前付きパイプに設定してターゲットアプリケーションを実行するPerlスクリプトを記述し、ターゲットアプリケーションに一連のコマンドを送信して、必要なパラメーターを含むレコードを作成し、ターゲットアプリケーションに終了してシャットダウンするように指示します。次に、さまざまなパラメーターを使用して、必要な回数だけスクリプトを実行します。

  • 応用。インタラクティブプログラムのスクリプトを作成するために使用できる別のUnixツールを見つけてください。私が見つけることができたのは期待されているものだけですが、これは維持されているようには見えません。チャットは昔から思い出しており、多かれ少なかれ私が望んでいることをしているように見えますが、モデムを制御するためだけのもののようです。

もう1つの潜在的な問題:ターゲットアプリケーションはVT100端末用に作成されており、ある種のエスケープシーケンスを使用して、強調表示の提供などを行っていると思います。

私の質問は、どのようなアプローチを取るべきかということです。これらの1つ、または完全に異なる何か?名前付きパイプを使用し、FIFOを開いて必要に応じて読み取りと書き込みを行うPerlスクリプトを使用するというアイデアは非常に気に入っています。柔軟性が高いためですが、私が読んだところによると、私はこの道を進みます。

前もって感謝します。

0 投票する
1 に答える
501 参照

sql-server - SQL 2005 ジョブの実行: TCP/IP と名前付きパイプ

良い一日、

1 つの同一の T-SQL ステップを実行する SQL 2005 インスタンスに 2 つのジョブがあります。このステップでは、リモートの 2005 インスタンスに対してクロス サーバー クエリを実行します。ジョブ間の唯一の違いは、1 つはシステム管理者によって所有され、もう 1 つは所有されていないことです。

sysadmin が所有するジョブはエージェントの起動アカウントで実行され、sysadmin が所有しないジョブはジョブ所有者のアカウントで実行されます。ここまでは順調ですね。

ただし、sysadmin が所有するジョブは、TCP/IP を使用してリンク サーバーに接続しようとし、もう 1 つは名前付きパイプを使用して接続しようとします。これは、sysadmin 以外のジョブが名前付きパイプ接続エラーで失敗するためです。名前付きパイプは Kerberos をサポートしていないため、名前付きパイプ経由で接続したくありません。構成されているリンク サーバーは 1 つだけであるため、両方のクエリがそれを使用しており、ネットワーク プロトコルに関連するリンク サーバーに設定するプロパティはありません。

接続を成功させたい場合、リモートサーバーが名前付きパイプをリッスンする必要があることは理解していますが、それは私の質問ではありません。私の質問は、sysadmin アカウントが TCP/IP を使用して接続しようとし、sysadmin 以外のアカウントが名前付きパイプを使用して接続しようとするのはなぜですか?

私はこれを再現し続けているので、まぐれではありません (少なくとも私の環境では)。いくつかの構成設定がありませんか? 誰でもこれを説明できますか?

本当にありがとう。

0 投票する
2 に答える
732 参照

windows - 名前付きパイプの名前を生成

他のプロセスと競合しないように、Windows の名前付きパイプの名前を生成する「最良の方法」は何ですか?

0 投票する
3 に答える
1551 参照

sockets - Win32 ソケットと名前付きパイプ

Win32 でソケットを使用し、ファイアウォールが使用しているポートをブロックしないようにすることは可能ですか?

Unix では、IF_UNIX代わりにIF_INET(つまり、ソケットの代わりに名前付きパイプ) を使用できます。現在、Windows では、さまざまなプロトコルを使用してソケットを開くことができます。

名前付きパイプソケットを開く方法はありますか? 例 (仮想構造)

0 投票する
1 に答える
816 参照

sql-server - SQL Server 2005 Native Clientで名前付きパイプをプログラムで無効にする方法は?

SQL Server 2005 Native Clientで名前付きパイプをプログラムで無効にする方法は?

0 投票する
4 に答える
8173 参照

c# - 名前付きパイプに接続できるクライアントは 1 つだけです

現在、ASP.NET 3.5 と C# を使用して、Windows の名前付きパイプについて学習しています。名前付きパイプを作成する小さなサーバー プログラムを作成しました。

クライアント アプリケーションは次のようにパイプを開きます。

これは、パイプに接続するクライアントが 1 つだけである限り、うまく機能します。読み取りと書き込みの両方が可能です。2 番目のクライアントに接続しようとすると、コードが 1 行を超えることはありません

サーバーとすべてのクライアントの両方が同じマシンで実行されています。何か案は?

事前にどうもありがとうございました!

0 投票する
4 に答える
6227 参照

bash - パイプされたコマンドでファイルの内容から STDIN に切り替えますか? (Linux シェル)

ファイルからコマンドを読み取るように設計されていないプログラム (私が作成していない) があります。STDIN でコマンドを入力するのはかなり面倒なので、コマンドをファイルに書き込んで再利用できるように自動化できるようにしたいと考えています。問題は、プログラムが EOF に達した場合、次のコマンドを読み込もうとして無限にループし、画面にメニュー オプションのエンドレスなトレントをドロップすることです。

私ができるようにしたいのは、コマンドを含むファイルをパイプ経由でプログラムに cat し、ある種のシェルマジックを使用して、ファイルのEOFに達したときにファイルからSTDINに切り替えることです。

注: STDIN に「-」を指定して cat を使用することは既に検討しています。残念ながら (私はこれまで知りませんでした)、パイプ コマンドは、最初のプログラムの出力が終了するのを待ってから、2 番目のプログラムを開始します。それらは並行して実行されません。そのようなパイプ処理と並行してプログラムを実行する方法があれば、それはうまくいくでしょう!

何かご意見は?ご協力ありがとうございます。

編集:

私の目標は、システムがコマンド ファイルの最後に達するのを防ぐことだけではないことに注意してください。ファイルが EOF に達したときに、キーボードからコマンドを入力し続けられるようにしたいと考えています。

0 投票する
2 に答える
1324 参照

wcf - 名前付きパイプを介した WCF

こんにちは、次のシナリオに問題があります。

複数のプロセスを生成する実行中の Windows サービスがあります。これらのプロセスは、名前付きパイプ バインディングを介して WCF サービス ホストを開きます。ここで、親 Windows サービスは、既知の名前付きパイプを介して wcf プロキシを使用して、子プロセスに ping (接続) しようとします。ただし、これは「エンドポイントが見つかりません」と言って失敗します

親プロセスをコンソール アプリケーションとして実行すると、正常に動作します。

何か案は?アクセス許可について考えていましたが、子プロセスはサービスのアクセス許可を継承する必要があり、同じセッションにもあります。

ありがとう、クリストフ

0 投票する
1 に答える
2095 参照

windows - 名前付きパイプをファイルとして使用する

ここでの簡単な質問 (おそらくそれほど単純な答えではないかもしれませんが):

プログラムが通常のファイルを開いているかのように使用できる (既存の) 名前付きパイプのパスを指定することはできますか?

この MSDN ページによると、ローカル コンピューター上の名前パイプは、次のパス構文を使用して参照できます\\.\pipe\PipeName:

余談ですが、物理 I/O (名前付きパイプなど) よりも効率的な方法でしかファイル システムを使用できないプログラムとのインターフェイスについて誰か提案があれば、喜んでお受けします。

0 投票する
2 に答える
1287 参照

windows - 名前付きパイプの問題

もう一方の端がパイプで ReadFile を正常に呼び出したときに戻る関数はありますか。名前付きパイプで通信する2つのアプリケーションがあり、1つはWriteFileを使用してパイプでリクエストを送信し、応答を期待してReadFileを呼び出します。問題は、相手側がまだパイプからリクエストを削除していないため、アプリケーションが自身のリクエストを回答として読み取っていることです。

そのような機能はありますか?

別の方法として、2 つの単方向パイプを使用するか、他のアプリケーションがメッセージを受信したときに送信者に信号を送ることで何らかの種類または同期を実装することを知っていますが、より簡単な方法があるかどうかを確認しています...