[erlang-questions] How can i communicate with a gen_server-based server

wenew zhang wenewboy@REDACTED
Fri Mar 28 09:16:31 CET 2008


Dear All,

    i use gen_server behavior write  a authserver
code:

-module(authserver).

-behaviour(gen_server).

%% gen_server callbacks
-export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2,
         code_change/3]).
-export([start_link/0]).

-include("protocol.hrl").
start_link() ->
    io:format("Authserver start_link~n"),
    gen_server:start_link({global, ?MODULE}, ?MODULE, [],[]).


init([]) ->
    process_flag(trap_exit, true),
    io:format("Authserver init with []~n"),
    {ok,0}.

handle_call(Request, _From, State) ->
    {stop, {unknown_call, Request}, State}.


handle_cast(_Msg, State) ->
    {noreply, State}.



handle_info({?PLLOGIN,Uid,Pwd},State) ->
    io:format("PLLogin id:~w Uid:~w   Pwd:~w~n",[?PLLOGIN,Uid,Pwd]).

terminate(_Reason, _N) ->
    ok.


code_change(_OldVsn, State, _Extra) ->
    {ok, State}.

%%___________________end_________________________



handle_info({?PLLOGIN,Uid,Pwd},State) ->
    io:format("PLLogin id:~w Uid:~w   Pwd:~w~n",[?PLLOGIN,Uid,Pwd]).

i want call this function above, send ?PLLOGIN},[Uid,Pwd])  from other node,
and then,authserver send some message back ,
i try:
2> Pid=authserver:start_link().
Authserver start_link
Authserver init with []
{ok,<0.32.0>}
3> Pid!{213,'root','12345'}.
** exception error: bad argument
     in operator  !/2
        called as {ok,<0.32.0>} ! {213,root,'12345'}
4>

what can i do?



More information about the erlang-questions mailing list