WindowsおよびLinuxを含む設計の主流プラットフォームのフレームワーク、などのRPC氷は、C ++やJava、C#(およびVisual Basicなど、他の.NET言語)やPython、Rubyの、PHPとActionScriptを含む言語の広い範囲をサポートしています。
インストールの氷
1.ダウンロード公式サイトのアドレス https://zeroc.com/downloads/ice
2.セットアップここ設置場所E:\プログラムファイル\ ZeroC \アイス3.6.3
3.環境変数の設定
コンピュータ - > [プロパティ] - > [システムの詳細設定 - >環境変数
1)変数は、インストールパスで、新しいICE_HOMEを確立します
2)パスに "%のICE_HOME%の\ビン" を追加します。
3)試験
設定が完了したら、開いてCMD
バージョン番号は、インストールと構成の登場です完了です
氷と組み合わせたJava開発
MavenのJavaプロジェクト管理を作成します。
pom.xmlに依存して追加します。
<! - https://mvnrepository.com/artifact/com.zeroc/ice - > <依存> <groupIdを> com.zeroc </ groupIdを> <たartifactId>氷</たartifactId> <バージョン> 3.6.3 < /バージョン> </依存関係>
好ましくは、バージョン依存氷に対応します
方法は、必要な依存関係名よりもBaiduの達人+より直接的に依存して迅速に見つけます
Mavenの氷のように
**プロジェクトフォルダ内のファイルを作成し、スライスフォルダを作成します。アイス
プロジェクトの例Hello.ice
[[「のjava:パッケージ:com.test.ice.service 」]] // 親構造の中で定義されたJavaパッケージ名 モジュールのデモ//モジュールパッケージ名 { // Helloインタフェースのサービス名をインターフェース { 文字列のsayHello(文字列S); //特定のメソッド }; };
1)Javaコードを生成slice2java氷コンパイル済みのファイルを使用します
出力-dirのディレクトリ出力ファイル - :CMDシェルまたは氷の中のファイルは、以下のコマンドpsを使用したフォルダを開きます
slice2java。\ Hello.ice --output-dirの.. \ SRC \メイン\のJava
あなたは、コードが表示されない場合は、プロジェクトをリフレッシュすることができます
2)生成されたコードプラグEclipseを使用して
日食 - ヘルプ - 氷のための市場を検索し、最初のプラグインをインストール
インストールが完了したら再起動の日食です
>氷Builderを追加 - 再起動後、右のアイスビルダーを選択し、プロジェクトの名前を選択します
氷は、Javaコードを生成しています
プログラミング
生成されたコードでは、「_iceファイルのインタフェース名Disp.java」ファイルで見ることができ、例えば、このプロジェクトは_HelloDisp.javaです
1)インタフェースクラスが_HelloDisp.javaあるHelloImplを継承します
輸入com.test.ice.service.demo._HelloDisp。 輸入Ice.Current。 パブリッククラスあるHelloImplは_HelloDisp {延び / ** * * / プライベート静的最終長いのserialVersionUID = 1Lと、 @Override パブリック文字列のsayHello(文字列S、現在__current){ System.out.printlnは(S); 「こんにちは、」+ Sを返します。 } }
PS:次の単語は無視することができ、それはインターフェースが地元の図書館、具体的な動作例にjarファイルにパッケージ化インストールするには、APIプロジェクト、サーバープロジェクト、クライアントのプロジェクト、インタフェースプロジェクトMavenの方法、すなわち最高のは、同じプロジェクトとのインタフェースではありませんHTTPS: //www.jianshu.com/p/5ce9d1567fee、他の項目は、インタフェース・プロジェクトの依存関係を追加します
2)クラスServerサービスが開始されます
輸入com.test.ice.service.demo.impl.HelloImpl。 輸入Ice.Communicator。 輸入Ice.ObjectAdapter。 パブリッククラスサーバー{ パブリック静的無効メイン(文字列[] args){ int型のステータス= 0。 CommunicatorのIC = NULL; してみてください{ System.out.printlnは( "サーバーの開始..."); IC = Ice.Util.initialize(引数)。 ObjectAdapterアダプター= ic.createObjectAdapterWithEndpoints( "iceTest"、 "デフォルト10006 -p"); Ice.Objectオブジェクト=新しいあるHelloImpl(); adapter.add(オブジェクト、ic.stringToIdentity( "ハロー"))。 adapter.activate(); System.out.println( "サーバーの成功を開始します。"); ic.waitForShutdown(); }キャッチ(Ice.LocalException電子){ e.printStackTrace(); }キャッチ(例外e){ System.err.println(e.getMessage())。 ステータス= 1; } (!IC =ヌル){場合 {試みる ic.destroyを(); }キャッチ(例外e){ System.err.println(e.getMessage())。 ステータス= 1; } } にSystem.exit(ステータス)。 } }
3)クライアントクライアント
輸入com.test.ice.service.demo.HelloPrx; 輸入com.test.ice.service.demo.HelloPrxHelper。 パブリッククラスクライアント{ パブリック静的無効メイン(文字列[] args){ int型のステータス= 0。 Ice.Communicator IC = NULL; {試みる IC = Ice.Util.initialize(引数)を、 Ice.ObjectPrxベース= ic.stringToProxy( "こんにちは:デフォルト-p 10006"); ハローHelloPrx = HelloPrxHelper.checkedCast(ベース) もし(ハロー== NULL){ スロー新しいError( "無効なプロキシ"); } のString = hello.sayHello( "世界!"); System.out.println( ">>" + S)。 }キャッチ(Ice.LocalException電子){ e.printStackTrace(); ステータス= 1; System.err.println(e.getMessage())。 ステータス= 1; } (!IC =ヌル){場合 {試みる ic.destroyを(); }キャッチ(例外e){ System.err.println(e.getMessage())。 ステータス= 1; } } にSystem.exit(ステータス)。 } }
4)プログラムを実行します。
ファーストクラスのサービスは、サーバーを実行して起動し、
クライアントClientを起動
データサービスによって終了
クライアントは、サーバから返されたデータを受け取り、
単純なJava、氷開発のこの組み合わせの終わりを紹介OHと、特定の綿密なフォローアップの取り組み
Pythonのプロジェクト開発氷
1.氷必要な依存関係をインストールします。
zeroc-氷をインストールPIP
2.書き込み氷のファイル
モジュールデモ { インタフェースハロー { ストリングのsayHello(文字列s)。 }。 }。
3.書き込みサーバのランチャー
#!は/ usr / binに/のenv Pythonの #コーディング= UTF-8 のインポートSYS、アイス #動的にロードされたスライスファイルとコンパイル Ice.loadSlice( "./ demo.iceを") モジュール名#iceファイル のインポートデモ ##達成サービスクラス クラスあるHelloImpl(demo.Hello): DEFのsayHello(セルフ、S、電流=なし): プリントSの MSG = "こんにちは、" S + リターンMSG Ice.initialize(sys.argvの)Communicatorなどと: 印刷「サーバー...起動" アダプター= communicator.createObjectAdapterWithEndpoints(" SimplePrinterAdapter ""デフォルト-p 10006 ") オブジェクト=あるHelloImpl() adapter.add(オブジェクト、communicator.stringToIdentity("こんにちは「)) adapter.activate() 印刷"サーバーの成功を起動します。」 communicator.waitForShutdown()
4.起動するクライアントプログラムを書きます
#!は/ usr / binに/ envをパイソン = UTF-8#コーディング 輸入SYS、アイス Ice.loadSlice( "./ demo.ice") 輸入デモ コミュニケーターとしてIce.initialize(sys.argvの)を持つ: ベース= communicator.stringToProxy ( "こんにちは:デフォルト-p 10006") プリンタ= demo.HelloPrx.checkedCast(ベース) でない場合、プリンタ: RuntimeErrorが( "無効なプロキシ")上げる printer.sayHello印刷( "世界を!")
5.プログラムを実行します。
1)サーバプログラムを起動します
2)クライアントプログラムを起動します
3)サーバは、クライアントの送信データ出力を受信します
4)クライアント・サーバーに戻り、データ出力を受信しました
JavaとPythonのサービスは、お互いを呼び出します
サーバーサービスを開始するJava、Pythonのクライアントプログラムは、サービスを呼び出します
1)Javaサーバサービスを開始
2)Pythonクライアントサービスを開始
3)サーバは、サービスデータ出力を受信します
4)クライアントは、返されたデータ出力を受信します
これまでのところ、ドアはそれを見るために