作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正处于 Erlang 开发阶段,需要创建一个 C-Node(有关 C-Node 文档,请参阅 link)。基本实现很简单,但是,文档中有一个巨大的漏洞。
该代码实现了单线程客户端和服务器。暂时忽略客户端......实现服务器的'c'代码是单线程的,一次只能连接到一个erlang客户端。
最佳答案
cnode tutorial中的cnode实现示例并不是要处理多个连接的节点,因此您遇到的第一个症状是正常的。erl_accept
call 是接受传入连接的。
if ((fd = erl_accept(listen, &conn)) == ERL_ERROR)
erl_err_quit("erl_accept");
fprintf(stderr, "Connected to %s\n\r", conn.nodename);
while (loop) {
got = erl_receive_msg(fd, buf, BUFSIZE, &emsg);
erl_receive_msg
会失败,因为
fd
将指向一个关闭的套接字。
poll
可能更容易(也可能更有效)。或
select
syscall 如果您的操作系统支持它们。
关于erlang - Threaded Erlang C-Node(cnode) 互操作性如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2518776/
我是一名优秀的程序员,十分优秀!