当前位置:  开发笔记 > 编程语言 > 正文

如何通过其ID获取Erlang端口?

如何解决《如何通过其ID获取Erlang端口?》经验,为你挑选了1个好方法。

当我有一个Erlang进程ID时,可以使用pid/3list_to_pid/1函数(内部做同样的事情)来获得用于调试目的的进程。

Process = pid(0,4,1).
Process = list_to_pid("<0.4.1>").

所以问题是;那港口呢?

有很多功能接口可以接受process()port()数据类型,例如register/2。因此,我需要知道是否有一种方法可以通过#Port<0.567>进程的ID(例如)来获取端口。禁止吗?如果是这样,有什么理由吗?



1> Steve Vinosk..:

我不知道标准库中有什么可以帮助您解决此问题,但是侦查库中有可以满足您需要的recon_lib:term_to_port/1函数。例如:

1> {ok,L} = gen_tcp:listen(0, []).
{ok,#Port<0.687>}
2> L = recon_lib:term_to_port("#Port<0.687>").
#Port<0.687>

此代码在临时端口上打开一个侦听套接字,并将其存储在variable中L。然后,它断言,使用模式匹配,即字符串化端口通过的结果#Port<0.687>recon_lib:term_to_port/1返回完全相同的套接字L

推荐阅读
刘美娥94662
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有