gpt4 book ai didi

Erlang:如何从 gen_server 中的 init() 获取结果

转载 作者:行者123 更新时间:2023-12-04 23:59:32 27 4
gpt4 key购买 nike

我的 init() 函数创建 UDP 套接字并将套接字值作为状态返回。

start() ->
{ok, ServerPid} = gen_server:start_link(?MODULE, [], []).

%%% gen_server API

init([]) ->
{ok, Socket} = gen_udp:open(8888, [list, {active,false}]),
{ok, Socket}.

如何在我的函数 start() 中获取 Socket?

最佳答案

您需要通过制作 gen_server:call 来获取套接字。到新创建的 gen_server 进程。例如。:

start() ->
{ok, ServerPid} = gen_server:start_link(?MODULE, [], []),
Socket = gen_server:call(ServerPid, fetch_socket),
... Use Socket ...

并在 gen_server 添加如下内容:
handle_call(fetch_socket, _From, State) ->
{reply, State, State}. %% State == Socket

关于Erlang:如何从 gen_server 中的 init() 获取结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12271119/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com