你好,我是一个Erlang新手,但已经成功创建了一个简单的TCP服务器,可以接受被动模式下的客户端连接并显示消息。每当有新客户端连接到服务器时,我都会生成一个新的进程。有没有办法使用与客户端连接时生成的进程向客户端发送消息呢?
以下是代码:
-module(test).
-export([startserver/0]).
startserver()->
{ok, ListenSocket}=gen_tcp:listen(1235,[binary,{active, false}]),
connect(ListenSocket).
connect(ListenSocket)->
{ok, UserSocket}=gen_tcp:accept(ListenSocket),
Pid=spawn(? MODULE, user,[UserSocket]),
gen_tcp:controlling_process(UserSocket, Pid),
connect(ListenSocket).
user(UserSocket)->
case gen_tcp:recv(UserSocket, 0) of.
{ok, Binary}->% Send basic message.
{error, closed}->% operation on close.
end.
我可以做类似于以下操作吗:
Pid!{"一些消息"}
。并且该消息会通过非阻塞IO发送到与该进程关联的套接字。