IO::Socket::Async::ListenSocket represents a listening TCP socket. Instances of this are returned by the tap method of the supply returned by IO::Socket::Async.listen:
my IO::Socket::Async::ListenSocket =IO::Socket::Async.listen('127.0.0.1', 0).tap(->);my (Str , Int ) = await .socket-host, .socket-port;say "The rude service is listening on $host:$port for the next 10 seconds...";await Promise.in(10).then();say "I'm done now.";
Alternatively, by using the
do prefix with
whenever, you can also use it from within a
method socket-host(--> Promise)
Returns a Promise that will be kept with a
Str|/type/Str containing the address of the listening socket.
method socket-port(--> Promise)
Returns a Promise that will be kept with an
Int|/type/Int containing the port of the listening socket.
method native-descriptor(--> Int)
Returns the corresponding file descriptor (
SOCKET on Windows) for the listening socket.