XU XUv0.8.8
EN

文档 / 教程

15 · UDP echo

listen_packet:读一个 datagram,原样写回对端。

mut c := net.listen_packet("udp", "127.0.0.1:19001") or (err) { << 1 }
pkt := c.read_from(4096) or (err) { -> }
c.write_to(&pkt.data, &pkt.addr)

另一终端:printf ping | nc -u -w1 127.0.0.1 19001。

源码

@main

#net

// UDP echo。
//   printf ping | nc -u 127.0.0.1 19001
// TCP 见 14tcp_echo。

fn main() int {
    mut c := net.listen_packet("udp", "127.0.0.1:19001") or (err) {
        println(err.msg())
        << 1
    }
    println("udp://127.0.0.1:19001  echo")
    mut running := true
    while running {
        pkt := c.read_from(4096) or (err) {
            ->
        }
        data := pkt.data + ""
        c.write_to(&data, &pkt.addr) or (err) {
            ->
        }
    }
    << 0
}

在独立的 examples 仓库根执行;源码位于 examples/。