我想我的问题很简单。
我想知道在即将终止的进程所拥有的套接字上使用gen_tcp:close/1
是否有任何意义。连接自动关闭,并将{tcp_closed, Socket}
返回到另一侧的已连接进程,就像调用close
时一样,因此我猜测效果是相同的{{1}只有在终止之前必须关闭连接时才需要}}。
这是正确的还是有任何理由为什么我应该尝试在套接字上使用close
,即使进程即将终止?
侦听套接字或另一端的连接进程不是Erlang进程有什么不同吗?
答案 0 :(得分:2)
没有必要,因为正如您所观察到的那样,这会在退出拥有过程时自动发生。
我总是努力做到这一点,以防万一我改变我的代码的方式不会让进程退出同一点。例如,打开一个套接字,读取数据,然后做一个巨大的计算。如果计算结果很大,会让插座长时间打开。
很确定我实际上已经遇到过这种情况,但我确定如果我总是在最早的时候明确地关闭我的套接字,我就不会这样做。