diff options
| author | littleblack111 <littleblack11111@gmail.com> | 2025-09-21 15:47:40 +0800 |
|---|---|---|
| committer | littleblack111 <littleblack11111@gmail.com> | 2025-09-21 15:47:40 +0800 |
| commit | 72daf64b904fc48505592a5469ecf64a18d570a4 (patch) | |
| tree | 73a883ce58fa9fcc49502f7b93c91758c82380f1 /src/server/servers | |
| parent | 867f8ecd572d7ae66967017eb78745df86290e8d (diff) | |
call tcpserver
Diffstat (limited to 'src/server/servers')
| -rw-r--r-- | src/server/servers/tcpserver.rs | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/server/servers/tcpserver.rs b/src/server/servers/tcpserver.rs index 4dcf25c..922c23e 100644 --- a/src/server/servers/tcpserver.rs +++ b/src/server/servers/tcpserver.rs @@ -17,7 +17,7 @@ use crate::{ use bincode::serde; -struct TCPServer<'a> { +pub struct TCPServer<'a> { this: RefCell<Weak<Self>>, task: Option<Task>, listener: TcpListener, @@ -25,7 +25,7 @@ struct TCPServer<'a> { } impl<'a> TCPServer<'a> { - fn new(listener: TcpListener) -> Arc<Self> { + pub fn new(listener: TcpListener) -> Arc<Self> { let s = Arc::new(Self { this: RefCell::new(Weak::new()), listener, task: None, clients: RefCell::new(Vec::new()) }); *s.this.borrow_mut() = Arc::downgrade(&s); s @@ -41,7 +41,7 @@ impl<'a> Server<'a> for TCPServer<'a> { self.task = Some(task); } - async fn listen(&mut self) -> ! { + async fn listen(&self) -> ! { loop { match self.listener.accept().await { Ok((socket, addr)) => self.clients.borrow_mut().push(Client::new(self.this.borrow().upgrade().unwrap(), socket, addr)), // the unwrap shouldn't panics, self has to be alive @@ -51,7 +51,7 @@ impl<'a> Server<'a> for TCPServer<'a> { } } -pub struct Client<'a> { +struct Client<'a> { server: Arc<TCPServer<'a>>, stream: TcpStream, addr: SocketAddr, |
