(client, server) feat:Add UDP client and server

This commit is contained in:
2025-08-29 12:28:33 +08:00
parent 44d53789a6
commit 6add290652
7 changed files with 126 additions and 0 deletions

View File

@ -3,9 +3,11 @@ mod grpc_server;
mod protocol;
mod server_logger;
mod services;
mod udp_server;
use grpc_server::GrpcServer;
use server_logger::ServerLogger;
use udp_server::UdpServer;
#[tokio::main]
async fn main() {
@ -14,6 +16,7 @@ async fn main() {
log::info!("Starting server...");
GrpcServer::init().await;
UdpServer::init();
log::info!("Server successfully started!");

27
Server/src/udp_server.rs Normal file
View File

@ -0,0 +1,27 @@
use std::net::UdpSocket;
use tokio::task;
pub(crate) struct UdpServer;
impl UdpServer {
pub(crate) fn init() {
match UdpSocket::bind("127.0.0.1:12345") {
Ok(socket) => {
task::spawn(async move {
loop {
let mut buf = [0; 1500];
let (amt, src) = socket.recv_from(&mut buf).unwrap();
log::info!("Received message from client {src}");
// TODO: Process received data in an independent method.
let buf = &buf[..amt];
socket.send_to(buf, src).unwrap();
}
});
}
Err(e) => log::error!("Failed to bind to address: {e}"),
}
}
}