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

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>
            欧美另类视频| 亚洲欧美国内爽妇网| 久久久亚洲一区| 国内自拍一区| 老鸭窝毛片一区二区三区| 久久乐国产精品| 亚洲激情自拍| 亚洲视频一起| 韩国三级在线一区| 亚洲国产精品va在线看黑人动漫| 老司机凹凸av亚洲导航| 亚洲精品在线二区| 国产麻豆成人精品| 亚洲愉拍自拍另类高清精品| 在线视频日韩精品| 国产一区二区三区高清在线观看| 久久亚洲精品视频| 欧美精品日韩一区| 欧美中文字幕视频| 麻豆精品在线视频| 亚洲一区二区精品在线| 久久国产乱子精品免费女| 亚洲欧洲另类国产综合| 亚洲一线二线三线久久久| 激情久久婷婷| 一区二区精品在线观看| 国模叶桐国产精品一区| 亚洲激情在线观看| 国产主播喷水一区二区| 亚洲娇小video精品| 亚洲欧美视频一区二区三区| 国产精品白丝av嫩草影院 | 久久精品1区| 亚洲人人精品| 欧美一级一区| 亚洲少妇诱惑| 久久亚洲高清| 久久电影一区| 亚洲日本va午夜在线影院| 国产婷婷成人久久av免费高清| 免费日韩av| 国产欧美精品一区二区色综合 | 一本综合精品| 最新日韩中文字幕| 久久超碰97人人做人人爱| 亚洲欧美日韩直播| 欧美日韩一二三区| 亚洲第一精品福利| 在线看无码的免费网站| 欧美一级成年大片在线观看| 一本一本久久| 欧美r片在线| 蜜桃久久精品乱码一区二区| 国产九九精品视频| 在线视频免费在线观看一区二区| 亚洲精品一区二区三区蜜桃久 | 亚洲视频在线视频| 一区二区三区视频免费在线观看| 久热精品视频在线观看| 久久米奇亚洲| 一色屋精品视频免费看| 欧美专区在线播放| 久久久久久久久久码影片| 国产精品美女久久久久久2018| 亚洲美女av网站| 一本色道久久88综合日韩精品| 欧美mv日韩mv国产网站app| 免费视频最近日韩| 91久久黄色| 欧美精品一区二区三区久久久竹菊| 欧美高清视频免费观看| 亚洲福利久久| 欧美电影专区| 99国产精品视频免费观看| 亚洲视频一二区| 国产精品成人观看视频免费| 在线视频精品| 久久国产精彩视频| 激情久久一区| 欧美精品久久久久久久久老牛影院| 亚洲精品系列| 亚洲综合国产精品| 国内精品久久久久久久影视麻豆| 久久国产精品一区二区三区四区| 欧美国产高清| 亚洲午夜国产成人av电影男同| 国产精品r级在线| 久久精品国产久精国产一老狼| 蜜桃视频一区| 一本高清dvd不卡在线观看| 国产精品成av人在线视午夜片| 亚洲自拍啪啪| 欧美国产国产综合| 在线亚洲欧美专区二区| 国产午夜精品福利| 欧美成人精品1314www| 一区二区三区久久| 久久蜜臀精品av| 99riav1国产精品视频| 国产精品永久免费| 欧美成人午夜激情在线| 亚洲一卡二卡三卡四卡五卡| 亚洲第一福利社区| 欧美日韩久久不卡| 久久久xxx| 国产精品99久久99久久久二8| 久久久久久伊人| 亚洲一区国产| 亚洲欧洲日韩在线| 国产伦理一区| 欧美日韩国产一区| 久久久久久久久久码影片| 9久re热视频在线精品| 欧美sm重口味系列视频在线观看| 亚洲欧美在线播放| 99re8这里有精品热视频免费| 国产亚洲成av人片在线观看桃| 欧美日韩一卡| 欧美国产日韩xxxxx| 欧美一区二区成人6969| 亚洲图片在线| 91久久精品日日躁夜夜躁欧美 | 美女视频黄a大片欧美| 亚洲欧美另类久久久精品2019| 亚洲精品视频在线| 加勒比av一区二区| 国产亚洲精品7777| 国产精品日韩久久久久| 欧美日韩视频免费播放| 欧美久久视频| 免费观看一区| 久久综合狠狠综合久久激情| 欧美一级视频| 亚洲欧美美女| 亚洲永久视频| 亚洲午夜伦理| 亚洲午夜高清视频| 夜夜嗨av一区二区三区四季av| 亚洲国产美女| 最新成人av在线| 亚洲欧洲综合另类在线| 亚洲第一综合天堂另类专| 欧美福利电影在线观看| 老司机一区二区| 久久夜色撩人精品| 女仆av观看一区| 欧美激情国产日韩精品一区18| 免费av成人在线| 欧美激情精品久久久久久大尺度| 模特精品在线| 欧美国产极速在线| 亚洲日本免费| 国产精品99久久99久久久二8 | 欧美日韩成人在线| 欧美三级免费| 国产精品日韩久久久| 国产一区二区黄| 亚洲成色最大综合在线| 亚洲精品日韩激情在线电影| 一区二区三区产品免费精品久久75| 99国产精品久久| 亚洲欧美在线网| 久久精品在线视频| 欧美ed2k| 日韩视频在线永久播放| 亚洲一区在线免费| 久久青青草综合| 欧美日本亚洲| 国产精品视频第一区| 国产综合香蕉五月婷在线| 亚洲国产精品一区二区三区| 日韩午夜三级在线| 久久精品女人天堂| 欧美激情欧美激情在线五月| 亚洲你懂的在线视频| 久久精品视频在线| 亚洲激情网址| 香蕉久久精品日日躁夜夜躁| 久久天天躁狠狠躁夜夜爽蜜月| 欧美激情麻豆| 国产女人精品视频| 亚洲成色最大综合在线| 久久精品国亚洲| 欧美黄色精品| 国产日产欧产精品推荐色| 亚洲电影下载| 欧美一区二区三区四区在线观看地址| 另类国产ts人妖高潮视频| 亚洲看片一区| 久久久噜噜噜久噜久久| 国产精品扒开腿做爽爽爽软件| 在线成人中文字幕| 亚洲欧美视频一区| 亚洲高清在线观看| 久久精品国产清高在天天线| 欧美日韩在线另类| 亚洲福利在线看| 久久精品一本| 亚洲视频一起| 欧美日韩三区|