我的init()函数创建UDP Socket并将Socket值作为State返回.
start() ->
{ok, ServerPid} = gen_server:start_link(?MODULE, [], []).
%%% gen_server API
init([]) ->
{ok, Socket} = gen_udp:open(8888, [list, {active,false}]),
{ok, Socket}.
Run Code Online (Sandbox Code Playgroud)
如何在函数start()中获取Socket?
您需要通过创建一个gen_server:call新创建的gen_server进程来获取套接字.例如:
start() ->
{ok, ServerPid} = gen_server:start_link(?MODULE, [], []),
Socket = gen_server:call(ServerPid, fetch_socket),
... Use Socket ...
Run Code Online (Sandbox Code Playgroud)
并在gen_server中添加如下内容:
handle_call(fetch_socket, _From, State) ->
{reply, State, State}. %% State == Socket
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
603 次 |
| 最近记录: |