raku - 找出异步套接字绑定(bind)的端口?

标签 raku asyncsocket

从 Perl 6 的 6.d 版本开始,您可以使用端口 0要求解释器找到一个端口来为你绑定(bind):

my $socket = IO::Socket::Async.listen($SOCKET_ADDR, 0);

但是,$socket 是 Supply 没有关于它正在使用的低级套接字的信息。查找绑定(bind)到哪个端口的方法是什么?

最佳答案

当你tap $socket你得到的变量(当前未记录)IO::Socket::Async::ListenSocket目的。这有几个方法socket-portsocket-hostPromises然后当他们解决时具有正确的值。

我们可能可以整理文档以表明这一点。

例子 :

my $s = IO::Socket::Async.listen("127.0.0.1",0);
my $t = $s.tap;
my $p = await $t.socket-port;
$p.say;

关于raku - 找出异步套接字绑定(bind)的端口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54966762/

相关文章:

raku - 我的类(class)和我们在 Raku(perl6) 中的类(class)有什么区别?

raku - 急需的奇怪行为

regex - 如何访问比赛中的捕获?

iPhone/iPod 使用 CocoaAsyncSocket 从 C# tcpip 服务器接收消息

.net - 套接字发送与发送同步。 send 什么时候真正阻塞?

raku - 为什么我不能在 "gist"上调用 "while"? (Perl 6)

C# 通过异步套接字连接发送带有序列化对象的对象大小

c# - 关闭异步连接

android - 如何确定给定请求是否正在运行?

printing - raku REPL 在 WINdows 8 下的 `cygwin` 上似乎没有响应