一些教程,包括这个 Learn You Some Erlang 第一,显示应用程序,其中一个OTP管理器将打开并拥有一个TCP侦听套接字,并将其共享给许多接受连接的工作人员。
我的问题是,在没有terminate/2回调函数的情况下,如何关闭主管拥有的侦听套接字?
套接字链接到拥有它的进程。如果该进程退出,则套接字将自动关闭。(这适用于监听插座和连接插座。)
(拥有套接字的进程是创建它的进程,除非 gen_tcp:controlling_process 重新分配套接字的所有权。)
gen_tcp:controlling_process