利用OTP.NET框架来实现C#与Erlang Node之间的通讯
来源:互联网 发布:ubuntu core 是什么 编辑:程序博客网 时间:2024/06/07 00:46
OTP.NET库是Erlang中Jinterface的.NET实现,Jinterface是Erlang开发的用来实现与Java通讯的开源库,出了Jinterface 外,还开发了与C通讯的库。关于OTP.NET的代码可以从http://jungerl.cvs.sourceforge.net/viewvc/jungerl/jungerl/lib/otp.net/下载得到,由于OTP.NET是Java版本的.NET实现,所以文档跟Jinterface中的是类似的
下面的代码演示了利用OTP.NET来实现连接一个.NET节点与Erlang节点,并调用Erlang节点中的模块、方法,同时获取返回的结果。
首先,编写一个计算两个是乘积的erlamg模块:
-module(mathserver).
-compile(export_all).
multiply(First, Second) ->
First * Second.
然后利用下面的代码,尝试在erlang shell中,把这个模块作为一个节点上的服务,判断能否正确运行:
1、在控制台中输入werl.exe -sname servernode -setcookie cookie,来开启一个服务节点
2、在弹出的erlang shell窗口中输入c(mathserver)编译,成功的话将会得到{ok,mathserver}。
3、调用mathserver的函数mathserver:multiply(10, 3),得到正确的值。
在实现OTP.NET与这个Erlang 节点服务通讯之前,我们先用另外一个erlang节点来模拟客户端来调用mathserver,来验证节点之间的通讯是否正常:
1、在控制台中输入werl.exe -sname clientnode -setcookie cookie,开启一个客户端节点
2、在erlang shell中输入rpc:call(servernode@apollo, mathserver, multiply, [10, 2]).能够获取正确的返回值,说明节点间的通讯正常。
下面就是利用OTP.NET来实现调用mathserver服务,一下是C#代码:
static void Main(string[] args) { OtpSelf cNode = new OtpSelf("clientnode", "cookie"); OtpPeer sNode = new OtpPeer("servernode@liyiqun"); OtpConnection connection = cNode.connect(sNode); Otp.Erlang.Object[] parames = new Otp.Erlang.Object[] { new Otp.Erlang.Long(1), new Otp.Erlang.Long(4) }; connection.sendRPC("mathserver", "multiply", parames); Otp.Erlang.Long sum = (Otp.Erlang.Long)connection.receiveRPC(); Console.WriteLine("Return Value:" + sum.ToString()); Console.ReadKey(true); } 运行C#代码,然后在控制台就能看到返回的正确结果,这里需要注意的是在erlang中的节点命名规则,在Windows中,@后面都是电脑名称,比如mathserver服务端的节点名称就是servernode@liyiqun。
- 利用OTP.NET框架来实现C#与Erlang Node之间的通讯
- 利用Socket来实现Erlang与C#之间的通讯
- erlang otp的编译
- 利用Fluorinefx实现Flex与.net的通讯
- 利用Prism的IEventAggregator事件聚合器来实现ViewModel之间的通讯
- erlang 实现与 c++ 通讯
- erlang 实现与 c++ 通讯
- [连载]《C#通讯(串口和网络)框架的设计与实现》-1.通讯框架介绍
- node.js跨域请求实现和.net框架的通讯
- asp.net与javacript之间的通讯
- C# 实现的一种Socket通讯框架
- OpendAS2实现与伙伴之间的通讯
- 利用共享内存实现进程之间的通讯
- .NET与JSP页面之间消息通讯(跨域,使用html5的postMessage实现)
- JAVA与.NET的相互调用——利用JNBridge桥接模式实现远程通讯
- JAVA与.NET的相互调用——利用JNBridge桥接模式实现远程通讯
- [连载]《C#通讯(串口和网络)框架的设计与实现》- 6.通讯控制器的设计
- 使用thrift实现java与node.js的通讯
- 15种网站最差的用户体验
- Udp 服务器 C#实现代码
- VB.NET通过水晶报表显示数据
- C# UDP通讯类 多线程方式
- php+mysql乱码问题
- 利用OTP.NET框架来实现C#与Erlang Node之间的通讯
- 在C#中使用异步Socket编程实现TCP网络服务的C/S的通讯构架
- 或曰二之三省吾身
- Java文件操作大全
- Android, 真的有那么美好么?
- 用C++实现跨平台游戏开发之Irrlicht引擎
- arm9处理器的cache和write buffer
- AIX上安装OpenSSH
- 反调试技巧总结-原理和实现