本例子用Rust实现一个基于UDP的服务端和客户端的程序。服务端收到字符串后,做一个逆序,然后返回。
知识点
udp主要用到net库中的UdpSocket。
源码
服务端
<code>use std::net::UdpSocket; fn main() -> std::io::Result { let socket = UdpSocket::bind("127.0.0.1:8080")?; loop { let mut buf = [0u8; 1500]; let (amt, src) = socket.recv_from(&mut buf)?; let buf = &mut buf[..amt]; buf.reverse(); socket.send_to(buf, &src)?; } }/<code>
客户端
<code>use std::net::UdpSocket; use std::{io, str}; fn main() -> std::io::Result { let socket = UdpSocket::bind("127.0.0.1:8000")?; socket.connect("127.0.0.1:8080")?; loop { let mut input = String::new(); io::stdin().read_line(&mut input)?; socket.send(input.as_bytes())?; let mut buffer = [0u8; 1500]; socket.recv_from(&mut buffer)?; println!( "recv: {}", str::from_utf8(&buffer).expect("Could not write buffer as string") ); } }/<code>