diff options
| author | zy <[email protected]> | 2023-08-15 09:39:16 +0000 |
|---|---|---|
| committer | zy <[email protected]> | 2023-08-15 09:39:16 +0000 |
| commit | 903e822ad10befec177827f50e00ca0f53cb3e58 (patch) | |
| tree | 1d7c36effb487c2fd5d13ec490ab6301914dbed6 /src | |
| parent | c88946873cec734a7b81366e87bc204e191ef38e (diff) | |
一些注释和测试代码comment
Diffstat (limited to 'src')
| -rw-r--r-- | src/tcp.rs | 18 |
1 files changed, 9 insertions, 9 deletions
@@ -15,8 +15,8 @@ use crate::{reactor::get_reactor, reactor::Reactor}; /// TCP 监听器 #[derive(Debug)] pub struct TcpListener { - reactor: Weak<RefCell<Reactor>>, - listener: StdTcpListener, + reactor: Weak<RefCell<Reactor>>, // reactor + listener: StdTcpListener, // 标准库的 TcpListener | 包装一层 } impl TcpListener { @@ -42,20 +42,20 @@ impl TcpListener { sk.bind(&addr)?; sk.listen(1024)?; - // 将 fd 添加到反应器中 + // 将 fd 添加到 reactor 中 let reactor = get_reactor(); reactor.borrow_mut().add(sk.as_raw_fd()); println!("tcp bind with fd {}", sk.as_raw_fd()); Ok(Self { - reactor: Rc::downgrade(&reactor), + reactor: Rc::downgrade(&reactor), listener: sk.into(), }) } } - -impl Stream for TcpListener { - type Item = std::io::Result<(TcpStream, SocketAddr)>; +//Stream 流 +impl Stream for TcpListener { //TcpStream 和 TcpListener 在这链接 + type Item = std::io::Result<(TcpStream, SocketAddr)>; // fn poll_next( self: std::pin::Pin<&mut Self>, @@ -63,12 +63,12 @@ impl Stream for TcpListener { ) -> std::task::Poll<Option<Self::Item>> { match self.listener.accept() { Ok((stream, addr)) => Poll::Ready(Some(Ok((stream.into(), addr)))), - Err(ref e) if e.kind() == io::ErrorKind::WouldBlock => { + Err(ref e) if e.kind() == io::ErrorKind::WouldBlock => { // 继续阻塞 // 修改反应器以注册感兴趣的事件 let reactor = self.reactor.upgrade().unwrap(); reactor .borrow_mut() - .modify_readable(self.listener.as_raw_fd(), cx); + .modify_readable(self.listener.as_raw_fd(), cx); // 可读事件 Poll::Pending } Err(e) => std::task::Poll::Ready(Some(Err(e))), |
