Server:use v6;
my $socket = IO::Socket::Async.bind-udp('localhost', 3333);
react {
whenever $socket.Supply(:datagram) -> $datagram {
# read data from client
say $datagram.data if $datagram.data.chars > 0;
# send data to client
$socket.print-to($datagram.hostname, $datagram.port, 'lol');
}
}
Client:use v6;
my $socket = IO::Socket::Async.udp();
# send data to server
await $socket.print-to('localhost', 3333, "Hello, Perl 6!");
# read response from server
react {
whenever $socket.Supply(:datagram) -> $datagram {
say $datagram.data if $datagram.data.chars > 0;
done;
}
whenever Promise.in(5) {
"[TIMEOUT] expired!".say;
done;
}
}