今天下午,花时间写了一下gen_server例子,自己对这个运转模式不是很理解,还没有细看它里面的实际代码,先会用吧...
-module(my_server). -behaviour(gen_server). %%External exports -export([start_server/0,handle_test/1]). %% gen_server callbacks -export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2, code_change/3]). -record(state, {}). %% ==================================================================== %% Server functions %% ==================================================================== init([]) -> {ok, #state{}}. handle_call({first,Data},_From,State)-> {reply,Data,State}; handle_call(_Request,_From,State)-> Reply = ok, {reply,Reply,State}. handle_cast(Msg, State) -> {noreply, State}. handle_info(Info, State) -> {noreply, State}. terminate(Reason, State) -> ok. code_change(OldVsn, State, Extra) -> {ok, State}. %% ==================================================================== %% Server functions %% ==================================================================== start_server()-> gen_server:start_link({local, ?MODULE},?MODULE, [], []). handle_test(Data) -> gen_server:call(?MODULE,{first,Data}).
只需要实现 给定的函数即可,确实蛮易于开发的。
明天打算把gen_server 和 gen_tcp结合,做一个简单的 server socket。