erlang 中的基本语法错误
Basic syntax error in erlang
我试图找出以下代码段中的语法错误,但我实在看不出哪里出了问题。我确定它是基本的,但我只需要对这段代码有新的认识:
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 行是这段代码的最后一行
您缺少 end
。您显示的最后一个 end
匹配 case read(Bin)...
,因此您还需要一个用于封闭的 receive
.
我试图找出以下代码段中的语法错误,但我实在看不出哪里出了问题。我确定它是基本的,但我只需要对这段代码有新的认识:
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 行是这段代码的最后一行
您缺少 end
。您显示的最后一个 end
匹配 case read(Bin)...
,因此您还需要一个用于封闭的 receive
.