所需要的軟體 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 這其實並不能完全保證高併發下的安全問題,因為可能在鎖過期之後該執行緒尚未執行完...