是否有必要在进程终止时关闭gen_tcp连接?

时间:2014-05-01 16:51:49

标签: sockets erlang gen-tcp

我想我的问题很简单。

我想知道在即将终止的进程所拥有的套接字上使用gen_tcp:close/1是否有任何意义。连接自动关闭,并将{tcp_closed, Socket}返回到另一侧的已连接进程,就像调用close时一样,因此我猜测效果是相同的{{1}只有在终止之前必须关闭连接时才需要}}。

这是正确的还是有任何理由为什么我应该尝试在套接字上使用close,即使进程即将终止?

侦听套接字或另一端的连接进程不是Erlang进程有什么不同吗?

1 个答案:

答案 0 :(得分:2)

没有必要,因为正如您所观察到的那样,这会在退出拥有过程时自动发生。

我总是努力做到这一点,以防万一我改变我的代码的方式不会让进程退出同一点。例如,打开一个套接字,读取数据,然后做一个巨大的计算。如果计算结果很大,会让插座长时间打开。

很确定我实际上已经遇到过这种情况,但我确定如果我总是在最早的时候明确地关闭我的套接字,我就不会这样做。