0
我得到一個erlang服務器,許多客戶端使用tcp連接到服務器。erlang端口的端口信息如何更改爲undefined?
經過幾分鐘後,使用erlang:ports()和erlang:port_info(),我可以發現某個端口的port_info未定義,並且該端口已關閉。無論如何我都找不到端口。
那麼爲什麼會發生,我怎麼能從erlang端口中刪除這些未定義的端口?
我得到一個erlang服務器,許多客戶端使用tcp連接到服務器。erlang端口的端口信息如何更改爲undefined?
經過幾分鐘後,使用erlang:ports()和erlang:port_info(),我可以發現某個端口的port_info未定義,並且該端口已關閉。無論如何我都找不到端口。
那麼爲什麼會發生,我怎麼能從erlang端口中刪除這些未定義的端口?
如果端口未打開,erlang:port_info/1
函數將返回undefined
。
您在未打開或已關閉的端口上調用該功能。
請注意,如果創建該端口的Erlang進程(連接的進程)終止,則該端口將自動關閉。
感謝您的回覆。在我的服務器中,端口是關閉的,並且返回undefined,但創建此端口的進程仍然存在。然後我殺死進程,但端口仍然存在,並返回undefined.I使用exit(normal)來殺死進程,是不是錯誤?或者當它拋出錯誤可能會導致錯誤? – user1553353 2012-07-26 08:06:59
另一個問題是,當進程還活着時端口會自動關閉嗎? – user1553353 2012-07-26 08:19:50
該端口已關閉,但它爲什麼仍顯示在erlang:ports()中? – user1553353 2012-07-26 08:28:06