Ice 分布式 helloword詳解

2021-07-10 04:11:15 字數 2975 閱讀 1694

所需要的軟體 vs2005,ice-3.3.1-vc80.msi,ice-3.3.1-thirdparty-vc80.msi

一、環境配置

1、安裝ice-3.3.1-vc80.msi,安裝目錄設為c:\zeroc,完全安裝。

2、安裝第三方依賴庫ice-3.3.1-thirdparty-vc80.msi,安裝目錄:c:\zeroc\thirdparty\

3、系統環境變數

新建iceroot: c:\zeroc (記得重啟)

path: %iceroot%\bin;%iceroot%\lib;%iceroot%\thirdparty\bin;%iceroot%\thirdparty\lib;

配置是否成功測試:進入命令視窗 cmd,命令:slice2cpp -v 顯示安裝的版本即為安裝正確

二、編譯slice

1、編寫slice檔案(任何編輯器均可)

module demo

;};

儲存為printer.ice。

2、編譯

進入命令視窗 cmd,進入到printer.ice所在目錄,

編譯命令 slice2cpp printer.ice 生成 printer.h和printer.cpp檔案

三、建立helloword工程

1、新建空白解決方案ice_test

2、在解決方案ice_test中 新建專案 win32控制台應用程式 server

(1)、將printer.h和printer.cpp拷貝到server工程下,新增現有項:printer.h , printer.cpp到server工程中。

(2)、修改server.cpp,**如下:

#include "stdafx.h"

#include

#include

using

namespace

std;

using

namespace demo;

class printeri:public printer

;void printeri::printstring(const

string& s, const ice::current&)

catch (const ice::exception& e)

catch (const

char* msg)

if (ic)

catch (const ice::exception& e)

}return

0;}

(3)、server配置屬性設定

常規 –> 字符集:使用多位元組字符集

c/c++ –>常規 –>附件包含目錄 :.;」$(iceroot)\include」

c/c++ –>**生成 –>執行時庫 :多執行緒除錯 dll (/mdd)

c/c++ –>預編譯頭 –>建立/使用預編譯頭:不使用預編譯頭

3、在解決方案ice_test中 新建專案 win32控制台應用程式 client

(1)、將printer.h和printer.cpp拷貝到client工程下,新增現有項:printer.h , printer.cpp到client工程中。

(2)、修改client.cpp,**如下:

#include "stdafx.h"

#include

#include

using

namespace

std;

using

namespace demo;

int _tmain(int argc, _tchar* argv)

catch(const ice::exception&ex)catch(const

char* msg)

if(ic)

ic->destroy();

return

0;}

(3)、client配置屬性設定

常規 –> 字符集:使用多位元組字符集

c/c++ –>常規 –>附件包含目錄 :.;」$(iceroot)\include」

c/c++ –>**生成 –>執行時庫 :多執行緒除錯 dll (/mdd)

c/c++ –>預編譯頭 –>建立/使用預編譯頭:不使用預編譯頭

4、工程目錄截圖及執行圖

首先執行server.exe,在執行client.exe.client執行視窗會一閃而過

ICE開發分布式程式

ice是zeroc公司開發的一款簡單高效的開源中介軟體平台,通過它可以快速地開發出高效 強壯 優雅的分布式的軟體。ice是zeroc公司開發的一款高效的開源中介軟體平台,全稱是internet communications engine。它的主要設計目標是 提供適用於異種環境的物件導向中介軟體平台。...

分布式rpc框架ice學習之helloworld篇

官方安裝文件在 這裡根據官方文件,演示在mac平台的安裝教程,使用 homebrew直接安裝如下 brew install icesudo cp f downloads mcpp 2.7.2.tar.gz library caches homebrew mcpp 2.7.2.tar.gz第一步,編寫...

分布式 分布式鎖

本質是利用redis的setnx 方法的特性來加鎖,setnx 即key不存在則設定key,否則直接返回false,要求在分布式系統中使用同乙個redis服務,以下提供兩種解決方案 1 直接使用redistemplate 這其實並不能完全保證高併發下的安全問題,因為可能在鎖過期之後該執行緒尚未執行完...