找出异步套接字绑定到的端口?
Finding out the port an asynchronous socket is binding to?
从 Perl 6 版本 6.d 开始,您可以使用端口 0
让解释器为您找到一个端口绑定:
my $socket = IO::Socket::Async.listen($SOCKET_ADDR, 0);
但是,$socket 是一个 Supply
,没有关于它所使用的低级套接字的信息。绑定到哪个端口的方法是什么?
当您 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;
从 Perl 6 版本 6.d 开始,您可以使用端口 0
让解释器为您找到一个端口绑定:
my $socket = IO::Socket::Async.listen($SOCKET_ADDR, 0);
但是,$socket 是一个 Supply
,没有关于它所使用的低级套接字的信息。绑定到哪个端口的方法是什么?
当您 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;