使用ErlPort从Python将带有PID的消息传递给Erlang

时间:2014-07-25 09:16:43

标签: python erlang

我想以{From(PID}, atom}格式将消息从python传递给Erlang,因为我的erlang程序需要知道发送消息的进程ID。

Erlang消息循环:

message_loop([First | Rest]) -> 
receive 
    {From, ready} ->
        % From ! {self(), {read, First}},
        python:cast(From, {read, First}),
        message_loop(Rest);
    {From, done} ->
        python:cast(From, {read, First}), 
        message_loop(Rest);
    {From, _} ->
        io:format("Invalid Message Received From");
    _ ->
        io:format("Random Message")
end.

如何使用ErlPort传递此类消息?或者是否有其他技术可以用来在产生许多过程后有选择地与流程进行通信?

1 个答案:

答案 0 :(得分:1)

正如您在记录的types mapping中所看到的,没有选择自动执行此操作。

您可以做的是将PID转换为erlang:pid_to_list/1的字符串表示形式,将其发送给python。从python接收时,您可以使用erlang:list_to_pid/1。这应该足够好了。