002 Rust 网络编程,实现 UDP 服务器和客户端
2020-04-26 本文已影响0人
令狐壹冲
本例子用Rust实现一个基于UDP的服务端和客户端的程序。服务端收到字符串后,做一个逆序,然后返回。
知识点
udp主要用到net库中的UdpSocket。
源码
服务端
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)?;
}
}
客户端
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")
);
}
}