嗨,我是 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!{"Some Message"}
. 并且消息被发送到与具有非阻塞io的进程关联的套接字,