gen_tcp:controlling_process/2
改变一个套接字的控制进程
用法:
controlling_process(Socket, Pid) -> ok | {error, Reason}
为 Socket 分配一个新的控制进程 Pid。控制进程就是接收发自套接字消息数据的进程。如果被当前控制进程以外的其他任何进程调用,则会返回 {error, not_owner} 的错误。
{Rand, _RandSeed} = random:uniform_s(9999, erlang:now()), Port = 40000 + Rand, case gen_tcp:listen(Port, [binary, {packet, 0}, {active, false}]) of {ok, Socket} -> gen_tcp:controlling_process(Socket, self()); _ -> socket_listen_fail end.