“二郎编程软件的并行世界”并行TCP服务器说写一个并行TCP服务器这样做:写作二郎
start_parallel_server() ->
{ok, Listen} = gen_tcp:listen(...),
spawn(fun() -> par_connect(Listen) end).
par_connect(Listen) ->
{ok, Socket} = gen_tcp:accept(Listen),
spawn(fun() -> par_connect(Listen) end),
loop(Socket).
loop(...) -> %% handle request here
当start_parallel_server
完成其工作,将关闭监听套接字。我们是不是应该在末尾加上timer:sleep(infinity)
这样的东西?
什么?为什么?哪里? –
@ Hynek-Pichi-Vychodil gen_tcp将链接到调用'gen_tcp:listen'的进程。在spawn(fun() - > par_connect(Listen)结束)之后,当这个过程停止时,那么侦听套接字也将被关闭。我想我们应该在'start_parallel_server()'末尾添加'timer:sleep(infinity)',这样它就不会完成。 –