2 つの C# アプリケーションがあり、そのうちの 1 つが 2 つの整数をもう 1 つのアプリケーションに送信するようにします (これは数秒に 1 回しか呼び出されないため、高速である必要はありません)。
これを行う最も簡単な方法は何ですか? (最もエレガントである必要はありません。)
2 つの C# アプリケーションがあり、そのうちの 1 つが 2 つの整数をもう 1 つのアプリケーションに送信するようにします (これは数秒に 1 回しか呼び出されないため、高速である必要はありません)。
これを行う最も簡単な方法は何ですか? (最もエレガントである必要はありません。)
最も簡単で信頼性の高い方法は、ほぼ確実にIpcChannel(別名プロセス間通信チャネル)です。それがその目的です。数行のコードと構成で起動して実行できます。
.NET Remoting を試すことができます。簡単な例を次に示します: CodeProject .NET Remoting。
.NET 3.5 を使用している場合は、リモート処理が徐々に廃止されつつあるため、WCF を使用する必要があります。繰り返しますが、WCFには多くの例があります。
私は、Windows サービス、コンソール アプリケーション、および Windows フォーム間で動作する迅速かつ簡単な IPC 用に、独自のオープン ソース ライブラリを作成しました。
これには、既存の IPC 実装に比べていくつかの利点があり、構成は必要ありません。
ここを参照してください。
別の方法は、名前付きパイプを模倣することです。どこかでファイルを宣言し、そこから読み書きします。
または、プログラムが順番に実行される場合は、クリップボードを試すことができます...しかし、その解決策は地獄のように醜く、バグがあります(.NETが理由もなくクリップボードにアクセスできない場合があります)。
完全を期すために、 と を使用することもできnet.pipe
ますWCF
。
私は彼らにソケットを介して話させると思います。
1 つのプログラムlisten
をソケットに配置し、もう 1 つのプログラムをconnect
最初に配置します。2 つの整数を 1 行で数字の文字列として送信します。
唯一の問題は、ポート番号についてどのように同意する必要があるか、および相互に通信していることをどのように認識するかです。常にポート 12345 (たとえば) を使用するように決定することで、彼らはポート番号に同意することができます。