青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

S.l.e!ep.¢%

像打了激速一樣,以四倍的速度運轉,開心的工作
簡單、開放、平等的公司文化;尊重個性、自由與個人價值;
posts - 1098, comments - 335, trackbacks - 0, articles - 1
  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

ICE編寫HELLO WORD

Posted on 2010-05-12 23:37 S.l.e!ep.¢% 閱讀(1133) 評論(0)  編輯 收藏 引用 所屬分類: ICE
ICE編寫HELLO WORD

有關ICE的基礎知識,請參照前面的ICE專題文章。由于這些文章均來自于網絡,故未發之于首頁。下面僅僅給出相關link:

ICE專題:利用ICE編寫程序的幾個注意點

ICE專題:ICE架構

ICE專題:ICE起步

ICE專題:ICE的5個服務

ICE專題:使用C#編寫ICE分布式應用程序

ICE專題:學習ICE 3.0

ICE專題:在客戶端中如何定位服務器(即如何尋找代理)

ICE專題:ICE在Linux下的安裝

ICE專題:ICE簡介

目標:在Windows平臺上編寫第一個基于ICE的Hello Word程序。


1、安裝

http://www.zeroc.com/download.html#bin下載安裝文件:

Windows Installer for Visual Studio 2005

Ice-3.2.0-VC80.msi 【必需】

Everything needed to use Ice on Windows XP/Server 2003/Vista in C++, Java, C#, Visual Basic and Python. This installer includes executables, debug and release DLLs, header files, import libraries, PDBs, Java classes, sample programs, and third-party dependencies.

Visual Studio 2005 is only required for C++, C#, and Visual Basic developers. Visual Studio 2005 Express compilers are also supported.

Ice-3.2.0-ThirdParty-VC80.msi

Use this installer if you want to build Ice for C++ or Ice for Java from sources. It includes header files, debug/release DLLs, and JAR files for Ice's third-party dependencies:

  • Berkeley DB 4.5.20
  • OpenSSL 0.9.8d
  • Libbzip2 1.0.3
  • Expat 2.0.0

Ice for Java users who do not want to install the full Ice distribution may also find this installer useful, as it includes the Java classes for Berkeley DB.

Ice for C#

IceCS-3.2.0.tar.gz
IceCS-3.2.0.zip

The complete Ice for C# source code.

Note that, to build Ice for C#, you must first compile Ice for C++ or, alternatively, download and install an appropriate binary distribution. This is necessary because the Slice-to-C# compiler is written in C++.

以上的3個文件,Ice-x.x.-VC80.msi是ICE在Windows平臺下的運行時文件,包含了必需的庫文件,頭文件,和命令行工具。有關運行時的介紹,以后的專題文章將一一介紹(隨項目進度逐步介紹吧:P)。第3方庫,建議安裝,特別是用C++開發時。當然,如果不使用C++,就不必安裝了。ICE for C#的包,是個源碼庫,包含了ICE for C#的實現,實際上是封裝了.NET Framework與ICE運行庫之間的交互,即.NET程序與C++程序的交互,會看到大量的平臺調用。如果起個更好的名字,也許稱之為“ICE for C# Provider/Wrapper"更好。

注意安裝運行時后,需要添加環境變量ICE_HOME,并將%ICE_HOME%bin添加到Path中:

2、建立C#控制臺項目

啟動VS 2005,建立兩個控制臺項目,一個叫Server,一個叫Client。均添加對icecs.dll的引用。

由于我的ICE運行時安裝于C:Ice-3.2.0,故在C:Ice-3.2.0bin下找到此文件,需要注意的是,一定要選擇:復制到本地。

3、定義接口方法

module Demo {
interface Printer {
void printString(string s);
};
};

將這段代碼存為:Printer.ice。在此文件同目錄下,創建批處理命令文件cmd1.bat,內容如下:

																								mkdir generated
slice2cs --output-dir generated Printer.ice
																						

運行cmd1.bat,則會在generated 文件夾下生成Printer.cs。這里暫時不分析Printer.cs的結構,直接使用它了。將Printer.cs拷貝到新建的兩個項目中,注意,你必須將項目中使用的namespace設置成相同的,例如,我將根namespace設置為Demo。

4、添加應用邏輯

在Client項目中添加Client.cs,內容如下:

																								using System;
using System.Collections.Generic;
using System.Text;
namespace Demo
{
publicclass Client
{
publicstaticvoid Main(string[] args)
{
int status = 0;
Ice.Communicator ic = null;
try
{
ic = Ice.Util.initialize(ref args);
Ice.ObjectPrx obj = ic.stringToProxy(
"SimplePrinter:tcp -p 12345:udp -p 12345");
PrinterPrx printer
= PrinterPrxHelper.checkedCast(obj);
if (printer == null)
thrownew ApplicationException("Invalid proxy");
printer.printString("Hello World!");
}
catch (Exception e)
{
Console.Error.WriteLine(e);
status = 1;
}
if (ic != null)
{
// Clean up//try
{
ic.destroy();
}
catch (Exception e)
{
Console.Error.WriteLine(e);
status = 1;
}
}
Environment.Exit(status);
}
}
}

在server項目中,添加Server.cs文件,內容如下:

																								namespace Demo
{
using System;
publicclass PrinterI : Demo.PrinterDisp_
{
publicoverridevoid printString(string s, Ice.Current current)
{
Console.WriteLine(s);
}
}
publicclass Server
{
publicstaticvoid Main(string[] args)
{
int status = 0;
Ice.Communicator ic = null;
try
{
ic = Ice.Util.initialize(ref args);
Ice.ObjectAdapter adapter
= ic.createObjectAdapterWithEndpoints(
"SimplePrinter", "tcp -p 12345:udp -p 12345");
Ice.Object obj = new PrinterI();
adapter.add(
obj,
Ice.Util.stringToIdentity("SimplePrinter"));
adapter.activate();
ic.waitForShutdown();
}
catch (Exception e)
{
Console.Error.WriteLine(e);
status = 1;
}
if (ic != null)
{
// Clean up//try
{
ic.destroy();
}
catch (Exception e)
{
Console.Error.WriteLine(e);
status = 1;
}
}
Environment.Exit(status);
}
}
}


5、測試應用

切換到Server項目的生成目錄,發現生成了server.exe程序,運行:Server.exe。
如果你的OS安裝了網絡防火墻,注意開通相應的12345端口。最好關閉所有防火墻軟件后,測試應用程序。
server.exe運行后,就一直處于監聽狀態。運行netstat -an,可以看到服務器端程序監聽著12345端口。

在命令行下運行Client.exe,會發現Server.exe的控制臺顯示:Hello Word!

注意事項:

1、通信協議串請使用TCP或UDP,如以上所提供的那樣,ICE手冊中所給的協議是:"default -p 10000",這在我的平臺下并不可用,這需要給ICE配置默認設置。ICE設置使用 【程序名.config】 文件來配置,下面給出一個例子:

#
# The client reads this property to create the reference to the
# "hello" object in the server.
#
Hello.Proxy=hello:tcp -p 10000:udp -p 10000:ssl -p 10001

#
# Warn about connection exceptions.
#
#Ice.Warn.Connections=1

#
# We want a faster ACM for this demo.
#
Ice.ACM.Client=10

#
# Network Tracing
#
# 0 = no network tracing
# 1 = trace connection establishment and closure
# 2 = like 1, but more detailed
# 3 = like 2, but also trace data transfer
#
#Ice.Trace.Network=1

#
# Protocol Tracing
#
# 0 = no protocol tracing
# 1 = trace protocol messages
#
#Ice.Trace.Protocol=1

#
# Security Tracing
#
# 0 = no security tracing
# 1 = trace messages
#
#IceSSL.Trace.Security=1

#
# SSL Configuration
#
Ice.Plugin.IceSSL=icesslcs, Version=3.2.0.0, Culture=neutral, PublicKeyToken=1f998c50fec78381:IceSSL.PluginFactory
IceSSL.DefaultDir=../../../certs
IceSSL.ImportCert.CurrentUser.Root=cacert.pem
IceSSL.CertFile=c_rsa1024.pfx
IceSSL.Password=password
Ice.ThreadPerConnection=1

2、關閉防護墻
當不關閉防火墻時,出現一些莫名其妙的問題,均是程序的TCP/IP出入受到了限制導致的。

后記:

最近項目使用了ICE來實現分布式應用,ICE的確功能強大,希望使用過的朋友或對ICE關注的朋友能一起交流交流經驗,彼此提高。【開源應用技術群 25935569】 。

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产视频亚洲精品| 日韩视频久久| 亚洲国产精品免费| 好吊妞**欧美| 好男人免费精品视频| 国产亚洲欧美一级| 影音先锋一区| 亚洲国产精品传媒在线观看| 亚洲精品资源| 这里只有精品丝袜| 欧美日韩国产一区| 国产精品久久久久91| 国产一区二区三区免费在线观看| 韩国三级在线一区| 99热这里只有精品8| 亚洲女ⅴideoshd黑人| 久久精品一区二区三区不卡牛牛| 欧美成人伊人久久综合网| 99精品欧美一区二区三区综合在线 | 欧美va天堂| 亚洲精品四区| 欧美在线亚洲在线| 欧美激情1区| 国产精品视频九色porn| 一区二区三区在线免费观看| 日韩一级二级三级| 久久一区二区精品| 亚洲乱码精品一二三四区日韩在线 | 1024成人网色www| 一区二区av在线| 亚洲欧美日韩专区| 亚洲国产精品成人综合色在线婷婷| 最新热久久免费视频| 午夜电影亚洲| 欧美日韩在线观看一区二区| 国产自产女人91一区在线观看| av不卡在线| 欧美二区视频| 久久精品主播| 国产精品国产a| 亚洲另类自拍| 欧美激情精品久久久| 亚洲欧美在线播放| 欧美性天天影院| 亚洲精品孕妇| 欧美成人精品1314www| 欧美一区二区高清在线观看| 欧美性理论片在线观看片免费| 亚洲大胆视频| 久久夜精品va视频免费观看| 亚久久调教视频| 国产欧美高清| 久久成人综合网| 欧美一区二区在线| 黑人巨大精品欧美一区二区小视频 | 亚洲精品久久久久中文字幕欢迎你 | 欧美韩日一区二区| 久久精品日产第一区二区| 国产精品久久久久久久免费软件 | 亚洲国产三级在线| 鲁大师影院一区二区三区| 亚洲欧美日韩国产综合在线| 欧美日韩一区在线| 亚洲一区二区在线| 亚洲精品影院| 国产精品r级在线| 亚洲欧美日韩在线综合| 亚洲欧美成人| 国产亚洲精品高潮| 蜜桃久久av一区| 久久资源av| 亚洲欧洲一区二区在线播放| 亚洲第一天堂无码专区| 麻豆精品在线视频| 亚洲激情第一页| 亚洲卡通欧美制服中文| 国产精品久久久久高潮| 午夜在线观看欧美| 久久本道综合色狠狠五月| 激情欧美日韩一区| 欧美激情中文不卡| 欧美日韩在线播放一区二区| 欧美在线观看网址综合| 久久精品国产久精国产爱| 怡红院精品视频| 亚洲理论在线| 国产美女精品一区二区三区| 老司机久久99久久精品播放免费| 女人色偷偷aa久久天堂| 亚洲欧美中文日韩在线| 久久久999精品免费| 99在线精品视频| 亚洲欧美日韩精品| 亚洲精品久久久久久一区二区| 亚洲免费观看高清完整版在线观看熊 | 在线视频精品一区| 性一交一乱一区二区洋洋av| 136国产福利精品导航| 一本色道综合亚洲| 在线播放亚洲| 亚洲天堂网在线观看| 亚洲高清不卡一区| 亚洲男人第一av网站| 亚洲国产精品久久| 亚洲午夜av电影| 亚洲精品一区二区网址| 欧美一区国产一区| 亚洲欧洲av一区二区| 欧美精品成人91久久久久久久| 新狼窝色av性久久久久久| 美女久久一区| 欧美在线国产| 欧美日韩国产三级| 麻豆精品网站| 国产精品网红福利| 亚洲精品日日夜夜| 伊伊综合在线| 午夜在线精品偷拍| 宅男66日本亚洲欧美视频| 麻豆精品传媒视频| 久久综合九色九九| 国产视频一区三区| 在线中文字幕日韩| 一区二区三区高清| 免费久久精品视频| 久久综合电影一区| 国产一区日韩一区| 亚洲一区国产一区| 亚洲午夜精品一区二区| 欧美成人一区二免费视频软件| 久久一二三四| 精品动漫av| 久久久精品性| 久久这里只精品最新地址| 国产欧美三级| 欧美一区中文字幕| 欧美影院成年免费版| 国产女主播一区二区| 一区二区久久久久| 亚洲一级片在线观看| 欧美视频免费在线| 亚洲一区二区av电影| 欧美有码在线观看视频| 国产精品免费区二区三区观看| 一区二区高清在线| 欧美亚洲日本国产| 狠狠色噜噜狠狠色综合久| 久久久精品一区二区三区| 你懂的国产精品| 亚洲国产小视频| 欧美精品三级日韩久久| 一本大道久久a久久综合婷婷| 亚洲一区在线播放| 国产伦精品一区二区三区高清| 午夜影院日韩| 亚洲福利小视频| 99国产精品99久久久久久粉嫩| 欧美激情精品久久久六区热门| 亚洲九九精品| 欧美一级久久| 亚洲国产成人av| 欧美日韩喷水| 欧美亚洲一区| 亚洲第一精品福利| 亚洲欧美另类在线观看| 一区二区在线观看av| 欧美激情一区二区三区在线视频观看| 亚洲毛片在线观看| 欧美一区二区三区男人的天堂| 黄色一区二区三区| 欧美美女日韩| 欧美专区一区二区三区| 91久久在线观看| 性做久久久久久| 亚洲日本一区二区三区| 国产精品二区影院| 老司机午夜精品视频| 久久五月激情| 欧美午夜精品伦理| 久久久久青草大香线综合精品| 91久久精品一区二区三区| 欧美在线观看www| 日韩香蕉视频| 激情成人av在线| 欧美日韩一区二区三区免费| 久久精品国产亚洲一区二区三区 | 亚洲一区二区3| 欧美成年人视频网站| 性伦欧美刺激片在线观看| 91久久精品www人人做人人爽| 国产精品入口尤物| 欧美激情小视频| 久久久午夜视频| 亚洲综合导航| 亚洲精品在线电影| 快射av在线播放一区| 久久精品成人| 亚洲欧美不卡| 一区二区三区四区精品| 亚洲国产精品成人综合色在线婷婷|