アプリケーション間通信コントロール Ver1.00


主な機能

  • IPPCはIPCClientのコントロール単位にイベントやデータの通信を行います。
  • 通信するコントロールは「プロジェクト名」と「イベントグループ」によって制御されます。
  • 同期・非同期の処理が出来ます。
  • 通信にはデフォルトでTcpChannel、ポートは50002を使用しています。詳しくはMSDN「リモート処理設定スキーマ」を参照してください。
プロパティ p_strProjectName プロジェクト名を入力します。(デフォルト「ProjectName」)
p_intEventGroup グループを入力します。(デフォルト「0」)
メソッド SendMessage strProjectName 通信するプロジェクト名を指定します。
全プロジェクト名に対して通信を行いたい場合はString.Emptyを指定します。
intEventGroup 通信するイベントグループを指定します。
全イベントグループに対して通信を行いたい場合は「0」を指定します。
objData 送信するデータを指定します。
IsSync 同期処理を行う場合はTrue、非同期処理を行う場合はFalseを指定します。
イベント ReceiveMessage objData 受信したデータです。


対応開発環境

Microsoft Visual Studio .NET
Microsoft Visual Studio .NET 2003



ダウンロード


ダウンロード (vector)




インストール

書庫ファイル内の「IROHA.IPC.EventsClient.dll」「IROHA.IPC.EventsManager.dll」「IROHA.IPC.EventsServer.dll」を適当な場所に展開します。

使用方法およびサンプルプロジェクト作成

サンプルとしてサーバー用Windowsアプリケーション1つ、クライアント用Windowsアプリケーション2つを作成します。

サーバーの作成
  1. サーバー用のWindowsアプリケーションプロジェクトを開き、「IROHA.IPC.EventsManager.dll」「IROHA.IPC.EventsServer.dll」を参照に追加します。
  2. ツールボックスのカスタマイズで「IROHA.IPC.EventsServer.dll」を参照してIPCServerコントロールを追加します。
  3. IPCServerをフォームに貼り付けます。
  4. ビルドします。
クライアント1の作成
  1. クライアント1用のWindowsアプリケーションプロジェクトを開き、「IROHA.IPC.EventsManager.dll」「IROHA.IPC.EventsClient.dll」を参照に追加します。
  2. ツールボックスのカスタマイズで「IROHA.IPC.EventsClient.dll」を参照してIPCClientコントロールを追加します。
  3. IPCClientをフォームに貼り付けます。また、TextBox2つとButtonを1つ貼り付けます。
    IPCClientのイベントグループに「1」を設定します。
  4. 以下のコードを実装します。
    	    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    	        TextBox2.Text = "処理開始"
    	        Application.DoEvents()
    	        ' プロジェクト名が「ProjectName」で、イベントグループが「2」のIPCClientに対してTextBox1の内容を非同期処理で送信
    	        IpcClient1.SendMessage("ProjectName", 2, TextBox1.Text, False)
    	        TextBox2.Text = "終了!"
    	    End Sub
    
    	    Private Sub IpcClient1_ReceiveMessage(ByVal objData As System.Object) Handles IpcClient1.ReceiveMessage
    	        TextBox2.Text = "何か重たい処理中…"
    	        Application.DoEvents()
    	        System.Threading.Thread.Sleep(3000)
    	        TextBox2.Text = objData
    	    End Sub
  5. ビルドします。
クライアント2の作成
  1. クライアント2用のWindowsアプリケーションプロジェクトを開き、「IROHA.IPC.EventsManager.dll」「IROHA.IPC.EventsClient.dll」を参照に追加します。
  2. IPCClientをフォームに貼り付けます。また、TextBox2つとButtonを1つ貼り付けます。
    IPCClientのイベントグループに「2」を設定します。
  3. 以下のコードを実装します。
    	    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    	        TextBox2.Text = "処理開始"
    	        Application.DoEvents()
    	        ' プロジェクト名が「ProjectName」で、イベントグループが「1」のIPCClientに対してTextBox1の内容を同期処理で送信
    	        IpcClient1.SendMessage("ProjectName", 1, TextBox1.Text, True)
    	        TextBox2.Text = "終了!"
    	    End Sub
    
    	    Private Sub IpcClient1_ReceiveMessage(ByVal objData As System.Object) Handles IpcClient1.ReceiveMessage
    	        TextBox2.Text = "何か重たい処理中…"
    	        Application.DoEvents()
    	        System.Threading.Thread.Sleep(3000)
    	        TextBox2.Text = objData
    	    End Sub
  4. ビルドします。
サンプルの実行
  1. 書庫ファイル内の「IPCServer.config」をサーバー用Windowsアプリケーション実行ファイルがある場所に展開します。※1
  2. 書庫ファイル内の「IPCClient.config」をクライアント1及び2用Windowsアプリケーション実行ファイルがある場所に展開します。※1
    ※1 .NET Framework 1.0と.NET Framework 1.1で使用する構成ファイルが違います。実行環境にあったファイルを展開してください。
  3. サーバー用Windowsアプリケーションを実行します。
  4. クライアント1及び2用Windowsアプリケーションを実行します。
  5. クライアント1のTextBox1へ「Client1から送信」を入力しButton1を押下します。(非同期通信)
    1. クライアント1.TextBox2=「処理開始」
    2. クライアント1.TextBox2=「終了!」
    3. クライアント2.TextBox2=「何か重たい処理中・・・」
    4. クライアント2.TextBox2=「Client1から送信」
  6. クライアント2のTextBox1へ「Client2から送信」を入力しButton1を押下します。(同期通信)
    1. クライアント2.TextBox2=「処理開始」
    2. クライアント1.TextBox2=「何か重たい処理中・・・」
    3. クライアント1.TextBox2=「Client2から送信」
    4. クライアント2.TextBox2=「終了!」

注意事項
  • このIPCCは著作権を侵害しない範囲内で、ご自由にお使いいただけます。
  • このIPCCを使うことにより、どんな結果を招こうとも、製作者、著作者は一切その責任を負いません。
  • 再配布を希望される方はご連絡ください。
  • 再配布条件などが予告なく変更されるかもしれません。

ソース公開について

IPCCのソースファイルを有償にて公開しています。詳しくはiroha@grn.janis.or.jpまでお問い合わせ下さい。

Copyright (C) 2006 by IROHA