我可以编写一个 UDP 服务器,它将使用 IO::Socket::Async 从客户端接收消息
my $socket = IO::Socket::Async.bind-udp: 'localhost', 3333;
react whenever $socket.Supply: :bin {
say "Received some junk: { .gist }";
}
Run Code Online (Sandbox Code Playgroud)
我可以将东西发送到该服务器:
given IO::Socket::Async.udp {
await .print-to: 'localhost', 3333, 'Hello';
}
Run Code Online (Sandbox Code Playgroud)
但是当我尝试让服务器发回消息响应时,我意识到我没有要发送消息的主机和端口。我怎样才能得到这些信息?
通常,我认为这个问题的答案是使用recvfrom并传递一个指向sockaddr结构的指针,该结构将填充传入连接的地址信息。但如果不使用 NativeCall 似乎就没有办法做到这一点(即使如此,我也不清楚如何做到这一点)。
或者我错过了什么?