设为首页 加入收藏

TOP

Erlang与C构建的节点通讯(二)
2014-11-23 19:42:20 来源: 作者: 【 】 浏览:42
Tags:Erlang 构建 节点 通讯
* Incoming message */ ETERM *fromp, *tuplep, *fnp, *argp, *resp; int res; erl_init(NULL, 0); if (erl_connect_init(1, "secretcookie", 0) == -1) erl_err_quit("erl_connect_init"); if ((fd = erl_connect("e1@idril")) < 0) erl_err_quit("erl_connect"); fprintf(stderr, "Connected to ei@idril\n\r"); while (loop) { got = erl_receive_msg(fd, buf, BUFSIZE, &emsg); if (got == ERL_TICK) { /* ignore */ } else if (got == ERL_ERROR) { loop = 0; } else { if (emsg.type == ERL_REG_SEND) { fromp = erl_element(2, emsg.msg); tuplep = erl_element(3, emsg.msg); fnp = erl_element(1, tuplep); argp = erl_element(2, tuplep); if (strncmp(ERL_ATOM_PTR(fnp), "foo", 3) == 0) { res = foo(ERL_INT_VALUE(argp)); } else if (strncmp(ERL_ATOM_PTR(fnp), "bar", 3) == 0) { res = bar(ERL_INT_VALUE(argp)); } resp = erl_format("{cnode, ~i}", res); erl_send(fd, fromp, resp); erl_free_term(emsg.from); erl_free_term(emsg.msg); erl_free_term(fromp); erl_free_term(tuplep); erl_free_term(fnp); erl_free_term(argp); erl_free_term(resp); } } } }

代码就参照上面的方法编译了

最后,如果对erlang有什么问题或者对某些技术感兴趣的,都可以回帖告诉我。我看到就会找时间研究一下,做一个分享或讨论。


扩展阅读:

erlang与java构建的节点通讯

erlang节点通讯例子及问题分析

erlang在windows下和虚拟机节点通信

Windows下使用NIF扩展Erlang方法


参考:http://blog.csdn.net/mycwq/article/details/40836273

http://www.erlang.org/doc/tutorial/cnode.html

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇笔试面试5 实现C库函数strlen 下一篇程序猿之---C语言细节8

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: