欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

研讨一下可行性:c# (winform) 调用corba的设计思想

更新时间: 2014-01-05 02:00:07 责任编辑: Author_N1

 

探讨一下可行性:C# (winform) 调用corba的设计思想
         
      目前情况:客户端程序是用c#写的windows application,需要调用服务端的corba接口。

   为了方便c#客户端的调用,拟写一个中间程序来调用服务端的corba服务。

      中间层:
      用java来写,其实就是一个很简单的TCP/IP通信,在指定的端口listen,接到客户端的连接和调用请求,然后就调用远端的corba相应的方法,并将返回结果返回给客户端。


      客户端:

      毫无疑问用c#,通过TCP/IP,和中间层connect之后,发送相应的请求。


       当前,使用java调用corba服务的方法的主要程序如下:(接录)

	//读取jacorb属性文件
String fileNamePath = System.getProperty("user.home") + File.separator+ "jacorb.properties";
try {
InputStream is = new BufferedInputStream(new FileInputStream(fileNamePath));
this.InitProperties();
if (is != null)
{
load(is);
}

for (Object t : this.keySet()) {
System.out.println(t + "=" + this.getProperty(t.toString()));
}

} catch (Exception e) {
System.out.println("读取属性文件失败,请确认文件是否存在!");
return;
}
......

orb = org.omg.CORBA_2_5.ORB.init(args, props);

// 获取服务对象引用
org.omg.CORBA.Object objRef = orb.resolve_initial_references("NameService");
// 通过命名服务对象得到命名服务上下文
NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef);
NameComponent ncArray[] = { new NameComponent(ID, Kind) };

if( obj._is_a("IDL:hi/modHK/intHK:1.0"))
{
hi.modHK._intHKStub stub;
stub = new hi.modhk._intHKStub();
stub._set_delegate(((org.omg.CORBA.portable.ObjectImpl)obj)._get_delegate());
}

         //
         调用服务端的GetPersonInfo方法
short[] ret=......GetPersonInfo(java.lang.String idcode, java.lang.String personname,java.lang.String pwswd, java.lang.String nbbm, short[] arr);

............

--参考方法--


corba是啥不懂,如果是 c#写的windows 通过TCPIP与JAVA通信的话,就直接Socket封包就行了,不用什么corba
--参考方法--
http://sourceforge.net/projects/iiop-net/?source=directory

iiop.net
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:00:07
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/4341/
本文WWW.DOC100.NET DOC100.NET版权所有。