找出异步套接字绑定的端口?
Posted
技术标签:
【中文标题】找出异步套接字绑定的端口?【英文标题】:Finding out the port an asynchronous socket is binding to? 【发布时间】:2019-03-03 08:02:41 【问题描述】:从 Perl 6 的 6.d 版本开始,您可以使用端口 0
让解释器为您找到要绑定的端口:
my $socket = IO::Socket::Async.listen($SOCKET_ADDR, 0);
但是,$socket 是一个Supply
,没有关于它正在使用的低级套接字的信息。有什么方法可以找到绑定到哪个端口?
【问题讨论】:
你是指版本 6.d 吗? 【参考方案1】:当您 tap
$socket
变量时,您会返回一个(当前未记录)IO::Socket::Async::ListenSocket
对象。这有几个方法 socket-port
和 socket-host
是 Promises
然后当它们解析时具有正确的值。
我们或许可以整理文档来说明这一点。
例子:
my $s = IO::Socket::Async.listen("127.0.0.1",0);
my $t = $s.tap;
my $p = await $t.socket-port;
$p.say;
【讨论】:
以上是关于找出异步套接字绑定的端口?的主要内容,如果未能解决你的问题,请参考以下文章