誰でも、実行時に次のエラーが表示される理由を説明できますか:erl -noshell -s simple_server
、次にtelnet 127.0.0.1 1084
?コード自体はエラーメッセージの下にあります。ヘルプエラーレポートの理解
=エラーレポート==== 13日 - 8月2011 :: 23:12: {{エラーBadMatch、{誤差、閉じ:プロセス< 0.30.0 05 ===エラー> 終了値を持ちます}}、[{simple_server、wait_accept、1}]}
-module(simple_server).
-compile(export_all).
start() ->
{ok, ListenSoc} = gen_tcp:listen(1084, [binary, {active, false}]),
wait_accept(ListenSoc).
wait_accept(ListenSoc) ->
{ok, Socket} = gen_tcp:accept(ListenSoc),
spawn(?MODULE, wait_accept, [ListenSoc]),
send_resp(Socket).
send_resp(Socket) ->
gen_tcp:send(Socket, "Response from simple server...\n"),
ok = gen_tcp:close(Socket).
本当に適切であるためには、ソケットなしでプロセスを生成し、 'controlled_process/2'を呼び出して、ソケット内のプロセスにメッセージを送ります。これは、まだ所有していないソケットからプロセスを読み取ることができないようにするためです。 –