2014-05-01 41 views
2

我想我的問題很直接。是否有必要在進程終止時關閉gen_tcp連接?

我想知道在即將終止的進程所擁有的套接字上使用​​是否有任何意義。連接會自動關閉,並且它將{tcp_closed, Socket}返回到另一端的連接進程,就像調用close時一樣,所以我猜測效果是一樣的,並且close僅在連接必須關閉一段時間時才需要終止前。

這是正確的還是有什麼理由爲什麼我應該嘗試在套接字上使用close即使進程即將終止?

監聽套接字有沒有區別,或者當另一端的連接進程不是Erlang進程?

回答

2

沒有必要,因爲,正如您所觀察到的,這是在擁有進程退出時自動發生的。

無論如何我會努力做到這一點,以防萬一我改變我的代碼的方式,沒有在同一點退出過程。例如,打開一個套接字,讀取數據,然後做一個巨大的計算。如果calc很大,會長時間打開插座。

很確定我真的遇到過這種情況,但我相信如果我總是在合理的最早時刻明確地關閉套接字,我肯定不會。

相關問題