From 50ea9869616846e5a0448ead8272c397080f36d8 Mon Sep 17 00:00:00 2001 From: "1992414357@qq.com" <1992414357@qq.com> Date: Mon, 21 Apr 2025 06:25:54 +0800 Subject: . --- core/src/server/server.rs | 56 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 core/src/server/server.rs (limited to 'core/src/server/server.rs') diff --git a/core/src/server/server.rs b/core/src/server/server.rs new file mode 100644 index 0000000..c71892c --- /dev/null +++ b/core/src/server/server.rs @@ -0,0 +1,56 @@ +use crate::constants::DEFAULT_PORT; +use crate::server::server_event::PadServerEvent; +use std::net::{SocketAddr, UdpSocket}; + +/// # 监听服务器 +/// 监听服务器用于连接玩家设备,并接收玩家的按键输入 +pub struct PadServer { + server_name: String, + port: u16 +} + +impl Default for PadServer { + + /// # 使用默认布局部署服务器 + /// 创建一个使用默认布局的服务器 + fn default() -> Self { + PadServer { + server_name: String::from("This Is No Pads"), + port: DEFAULT_PORT + // TODO :: 补充布局文件 + } + } +} + +impl PadServer { + + /// # 开始监听服务器 + /// self : 服务器 + /// event : 事件 + pub fn start_listening(&self, event : impl PadServerEvent) { + let socket_addr = SocketAddr::from(([127, 0, 0, 1], self.port)); + match UdpSocket::bind(socket_addr) { + Ok(socket) => { + let mut buf = vec![0u8; 1024]; + + loop { + // 接收连接请求 + match socket.recv_from(&mut buf) { + Ok((size, src)) => { + + } + Err(_) => {} + } + } + } + + Err(_) => {} + } + } + + /// # 停止监听服务器 + /// self : 服务器 + pub fn stop_listening(&self) { + + } +} \ No newline at end of file -- cgit