diff options
| author | zy <[email protected]> | 2023-08-23 05:04:36 +0000 |
|---|---|---|
| committer | zy <[email protected]> | 2023-08-23 05:04:36 +0000 |
| commit | ad0311c0f7faf29dd52f36c91cfb59a8af49d001 (patch) | |
| tree | 6b7dfe37d2b6422b16f82b8acbb1b34ebbbc4467 /src | |
| parent | e5038c5b0c1d5ee8026290d22734d79818533eef (diff) | |
udp 代码清理dev
Diffstat (limited to 'src')
| -rw-r--r-- | src/net/udp.rs | 174 |
1 files changed, 0 insertions, 174 deletions
diff --git a/src/net/udp.rs b/src/net/udp.rs index 0a6a391..d261a86 100644 --- a/src/net/udp.rs +++ b/src/net/udp.rs @@ -131,14 +131,6 @@ impl UdpSocket { } } -// impl From<StdUdpSocket> for UdpSocket { -// fn from(socket: StdUdpSocket) -> Self { -// Self { -// reactor: Weak::new(), -// socket, -// } -// } -// } impl Drop for UdpSocket { fn drop(&mut self) { @@ -149,169 +141,3 @@ impl Drop for UdpSocket { } } } - -// impl Future for UdpSocket { -// type Output = io::Result<(usize, SocketAddr)>; - -// fn poll(self: std::pin::Pin<&mut Self>, cx: &mut std::task::Context<'_>) -> Poll<Self::Output> { -// let mut buf = [0; 1024]; -// match self.socket.recv_from(&mut buf) { -// Ok((n, addr)) => { -// println!("recv_from {} {} bytes", addr, n); -// Poll::Ready(Ok((n, addr))) -// } -// Err(ref e) if e.kind() == io::ErrorKind::WouldBlock => { -// // 读取失败,且错误类型为 WouldBlock -// println!("read for fd {} done WouldBlock", self.socket.as_raw_fd()); -// // 修改反应器以注册感兴趣的事件 -// let reactor = get_reactor(); // 获取 reactor -// reactor -// .borrow_mut() -// .modify_readable(self.socket.as_raw_fd(), cx); // 注册到 reactor 可读事件 -// Poll::Pending // 等待 -// } -// Err(e) => { -// println!("read for fd {} done err", self.socket.as_raw_fd()); -// Poll::Ready(Err(e)) // 结束(错误) -// } -// } -// } -// } - -// impl Stream for UdpSocket { -// type Item = io::Result<(usize, SocketAddr)>; - -// fn poll_next( -// self: std::pin::Pin<&mut Self>, -// cx: &mut std::task::Context<'_>, -// ) -> std::task::Poll<Option<Self::Item>> { -// match self.socket.recv_from(&mut self.buf) { -// Ok((n, addr)) => { -// println!("recv_from {} {} bytes", addr, n); -// Poll::Ready(Some(Ok((n, addr)))) -// } -// Err(ref e) if e.kind() == io::ErrorKind::WouldBlock => { -// // 读取失败,且错误类型为 WouldBlock -// println!("read for fd {} done WouldBlock", self.socket.as_raw_fd()); -// // 修改反应器以注册感兴趣的事件 -// let reactor = get_reactor(); // 获取 reactor -// reactor -// .borrow_mut() -// .modify_readable(self.socket.as_raw_fd(), cx); // 注册到 reactor 可读事件 -// Poll::Pending // 等待 -// } -// Err(e) => { -// println!("read for fd {} done err", self.socket.as_raw_fd()); -// Poll::Ready(Some(Err(e))) // 结束(错误) -// } -// } -// } -// } - -// impl UdpSocket{ -// pub async fn recv_from(&self, buf: &mut [u8]) -> io::Result<(usize, SocketAddr)> { -// let mut buf = tokio::io::ReadBuf::new(buf); -// self.read(&mut buf).await?; -// Ok((buf.filled().len(), buf.filled().len())) -// } -// } - -// impl Future for UdpSocket { -// type Output = io::Result<(Vec<u8>, SocketAddr)>; - -// fn poll(self: std::pin::Pin<&mut Self>, cx: &mut std::task::Context<'_>) -> Poll<Self::Output> { -// let mut buf = vec![0u8; 1024]; -// match self.socket.recv_from(&mut buf) { -// Ok((n, addr)) => { -// println!("recv_from {} {} bytes", addr, n); -// Poll::Ready(Ok((buf, addr))) -// } -// Err(ref e) if e.kind() == io::ErrorKind::WouldBlock => { -// // 读取失败,且错误类型为 WouldBlock -// println!("read for fd {} done WouldBlock", self.socket.as_raw_fd()); -// // 修改反应器以注册感兴趣的事件 -// let reactor = get_reactor(); // 获取 reactor -// reactor -// .borrow_mut() -// .modify_readable(self.socket.as_raw_fd(), cx); // 注册到 reactor 可读事件 -// Poll::Pending // 等待 -// } -// Err(e) => { -// println!("read for fd {} done err", self.socket.as_raw_fd()); -// Poll::Ready(Err(e)) // 结束(错误) -// } -// } -// } -// } - -// // 为 UdpSocket 实现 tokio::io::AsyncWrite -// impl tokio::io::AsyncWrite for UdpSocket { -// fn poll_write( -// mut self: std::pin::Pin<&mut Self>, -// cx: &mut std::task::Context<'_>, -// buf: &[u8], -// ) -> Poll<Result<usize, io::Error>> { -// match self.send_to(buf, &"127.0.0.1:8080".parse().unwrap()) { -// Ok(n) => Poll::Ready(Ok(n)), // 写入成功 -// Err(ref e) if e.kind() == io::ErrorKind::WouldBlock => { // 写入失败,且错误类型为 WouldBlock -// let reactor: Rc<RefCell<Reactor>> = get_reactor(); -// reactor -// .borrow_mut() -// .modify_writable(self.socket.as_raw_fd(), cx); // 注册可写事件 -// Poll::Pending -// } -// Err(e) => Poll::Ready(Err(e)), // 写入失败,返回结果(错误信息) -// } -// } - -// fn poll_flush( -// self: std::pin::Pin<&mut Self>, -// cx: &mut std::task::Context<'_>, -// ) -> Poll<Result<(), io::Error>> { -// Poll::Ready(Ok(())) -// } - -// fn poll_shutdown( -// self: std::pin::Pin<&mut Self>, -// cx: &mut std::task::Context<'_>, -// ) -> Poll<Result<(), io::Error>> { -// Poll::Ready(Ok(())) -// } -// } - -// 为 UdpSocket 实现 tokio::io::AsyncRead -// impl tokio::io::AsyncRead for UdpSocket { -// fn poll_read( -// mut self: std::pin::Pin<&mut Self>, -// cx: &mut std::task::Context<'_>, -// buf: &mut tokio::io::ReadBuf<'_>, -// ) -> Poll<Result<(), std::io::Error>> { -// let fd: i32 = self.socket.as_raw_fd(); // 获取 socket 对应的 fd -// unsafe { -// // 将 ReadBuf 转换为 [u8] , socket.recv_from 需要 -// let b = &mut *(buf.unfilled_mut() as *mut [std::mem::MaybeUninit<u8>] as *mut [u8]); -// println!("read for fd {}", fd); -// match self.socket.recv_from(b) { -// Ok((size, addr)) => { -// // 读取成功 -// println!("read for fd {} done, {}", fd, size); -// Poll::Ready(Ok((size, addr))) -// } -// Err(ref e) if e.kind() == io::ErrorKind::WouldBlock => { -// // 读取失败,且错误类型为 WouldBlock -// println!("read for fd {} done WouldBlock", fd); -// // 修改反应器以注册感兴趣的事件 -// let reactor = get_reactor(); // 获取 reactor -// reactor -// .borrow_mut() -// .modify_readable(self.socket.as_raw_fd(), cx); // 注册到 reactor 可读事件 -// Poll::Pending // 等待 -// } -// Err(e) => { -// println!("read for fd {} done err", fd); -// Poll::Ready(Err(e)) // 结束(错误) -// } -// } -// } -// } -// } |
