从Perl 6版本6.d开始,您可以使用端口0
来要求解释器为您找到要绑定的端口:
my $socket = IO::Socket::Async.listen($SOCKET_ADDR, 0);
但是,$ socket是一个Supply
,没有关于它所使用的低级套接字的信息。查找绑定到哪个端口的方法是什么?
答案 0 :(得分:8)
当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;
,因此在解析时具有正确的值。
我们可能可以整理一下文档来表明这一点。
示例:
{{1}}