receive from a socket and also from another Erlang process
在 Erlang 进程中,我如何从 ssl 套接字接收,同时使用接收原语从另一个 erlang 进程接收?
这个想法是将来自套接字的内容转发到另一个进程;和向后。
到目前为止,我唯一的选择是使用一些时间从每一端接收,然后切换。当然,这会延迟在一个接口上接收到的消息的处理,同时从另一个接口接收消息。你有没有其他方法可以做到这一点?如果只有 Erlang 会让我使用一个进程从套接字接收,另一个进程发送到套接字...
不确定我是否理解您的问题;无论如何,您可以在接收语句中包含多个"子句",因此当从任一方接收某些内容时它会变为"未阻塞":
1 2 3 4 5 6 7 8 9 | loop() -> receive {ssl, Msg} -> % incoming msg from SSL, send it to process Proc ! Msg, loop(); {proc, Msg} -> % incoming msg from process, send it to SSL SSL ! Msg, loop() end. |
重要的是,您需要以一种可以区分 SSL 和使用模式匹配处理消息的方式来格式化您的消息。
无论如何,您将通过
查看这里了解更多详情。