是否允许在Erlang中读取一个进程并将另一个进程写入套接字? 我试过了它似乎工作但我想知道它是否万无一失。
答案 0 :(得分:3)
正如我从源代码中理解的那样,一个(gen_tcp,至少)套接字send / recv归结为发送的erlang:port_command和套接字端口上recv的erlang:port_control(参见prim_inet.erl) )。
对于port_command:“如果端口忙,则呼叫进程将暂停,直到端口不再忙。” port_control也是同步操作。
如果我错了,请纠正我,但使用多个进程读取和写入套接字似乎是完全安全的。
答案 1 :(得分:1)
我很确定我记得这样做没有任何问题。
答案 2 :(得分:1)
他们中的任何人都可以写作,但如果您的所有流程都能收到,那就没有意义。它会溢出所有不期待消息的邮箱。您只需要定义一个Pid来接收数据包,默认情况下它是创建套接字的Pid。您可以通过设置控制进程来设置任何Pid来控制套接字。