Erlang Pid控制

Erlang Pid控制,erlang,pid,Erlang,Pid,我已经用Erlang编写了一个简单的聊天服务器(没有任何套接字或端口,只是在多个shell之间发送消息),但是当我尝试模拟它时,我遇到了一些问题。 我的实现中几乎每个客户端功能(比如pm,say_to_all)都需要聊天服务器的进程ID。 若我在一个shell中打开chat_服务器和客户端,我可以很容易地绑定chat_服务器的进程ID并在必要时访问它,但当我想为客户端打开另一个shell时,问题就出现了。 看这幅画--> 如何从第二个shell(chat_客户端)从第一个shell(chat_服

我已经用Erlang编写了一个简单的聊天服务器(没有任何套接字或端口,只是在多个shell之间发送消息),但是当我尝试模拟它时,我遇到了一些问题。 我的实现中几乎每个客户端功能(比如pm,say_to_all)都需要聊天服务器的进程ID。 若我在一个shell中打开chat_服务器和客户端,我可以很容易地绑定chat_服务器的进程ID并在必要时访问它,但当我想为客户端打开另一个shell时,问题就出现了。 看这幅画-->
如何从第二个shell(chat_客户端)从第一个shell(chat_服务器)访问进程?

您可以使用某个名称全局注册服务器()。这样,您就可以从聊天系统中的任何shell访问服务器

不要忘记,首先需要将shell与net_adm:ping连接起来,让shell知道全局注册的名称

我真的可以推荐查看gen_server(),因为它在尝试组织客户机-服务器结构时非常有用

编辑: 对不起,也许你也需要一个问题的解释。
这是因为每个erlang shell都有自己的环境和自己的变量等。这意味着第二个shell不知道其他shell的任何变量。

非常感谢。erlang全局模块对我帮助很大,现在我的代码可以工作了:)很高兴我能帮上忙。