(client, server) feat:Add UDP client and server
This commit is contained in:
@ -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
27
Server/src/udp_server.rs
Normal 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}"),
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user