【问题标题】:Basic syntax error in erlangerlang中的基本语法错误
【发布时间】:2015-09-13 23:41:33
【问题描述】:

我试图找出以下代码中的语法错误,但是我真的看不出哪里出了问题。我确定这是基本的,但我只需要对这段代码重新审视:

sloop(Listen)->
    {ok, Socket} = gen_tcp:accept(Listen),
    io:format("Someone connected"),
    master ! {add,Socket},
    spawn(fun() -> sloop(Listen) end),
    receive
        {tcp, Socket, Bin} ->
             case read(Bin) of
                    {join,Channel} -> 
                        tracker ! {self(),get,Socket},
                        receive 
                            void -> 
                                master ! {delete, Socket},
                                A = lists:dropwhile(fun(A) -> A /= Channel end, resgistered()),
                                case A of
                                    [H|T] -> H ! {add,Socket};
                                    _ -> register(Channel,spawn(fun() -> listenerSocket([]) end))
                                end,
                            Channel ! {add, Socket},
                            tracker ! {insert,Socket, Channel};
                            {ok, Value} -> 
                                Value ! {delete,Socket},
                                tracker ! {delete,Socket},
                                A = lists:dropwhile(fun(A) -> A /= Channel end, resgistered()),
                                case A of
                                    [H|T] -> H ! {add,Socket};
                                    _ -> register(Channel,spawn(fun() -> listenerSocket([]) end))
                                end,
                            Channel ! {add, Socket},
                            tracker ! {insert,Socket, Channel};
                    {message, Msg} ->   
                        tracker ! {self(),get,Socket},
                        receive 
                            {ok, Value} -> Value ! {broadcast, Msg}
                        end
             end;
        {tcp_closed, Socket} -> io:format("Someone disconnected")
    end.

“.”前的语法错误第 50 行。 第 50 行是这段 sn-p 代码的最后一行

【问题讨论】:

  • 您没有收到任何错误消息吗?
  • 是的,抱歉。我加了

标签: syntax erlang


【解决方案1】:

您缺少end。您显示的最后一个endcase read(Bin)... 匹配,因此您还需要一个用于封闭的receive

【讨论】:

    猜你喜欢
    • 2012-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-19
    • 2015-01-27
    • 1970-01-01
    • 2015-08-23
    • 2014-06-08
    相关资源
    最近更新 更多