2012-07-26 49 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