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