2012-07-26 51 views
0

我得到一個erlang服務器,許多客戶端使用tcp連接到服務器。erlang端口的端口信息如何更改爲undefined?

經過幾分鐘後,使用erlang:ports()和erlang:port_info(),我可以發現某個端口的port_info未定義,並且該端口已關閉。無論如何我都找不到端口。

那麼爲什麼會發生,我怎麼能從erlang端口中刪除這些未定義的端口?

回答

1

如果端口未打開,erlang:port_info/1函數將返回undefined

您在未打開或已關閉的端口上調用該功能。

請注意,如果創建該端口的Erlang進程(連接的進程)終止,則該端口將自動關閉。

+0

感謝您的回覆。在我的服務器中,端口是關閉的,並且返回undefined,但創建此端口的進程仍然存在。然後我殺死進程,但端口仍然存在,並返回undefined.I使用exit(normal)來殺死進程,是不是錯誤?或者當它拋出錯誤可能會導致錯誤? – user1553353 2012-07-26 08:06:59

+0

另一個問題是,當進程還活着時端口會自動關閉嗎? – user1553353 2012-07-26 08:19:50

+0

該端口已關閉,但它爲什麼仍顯示在erlang:ports()中? – user1553353 2012-07-26 08:28:06