我正在mio之上构建一个多线程异步HTTP服务器。
如何处理客户端TcpStream连接上的事件?
is_readable,它非常简单:我读取请求并编写响应。shutdown()或is_hup,我应该在is_error或is_hup的情况下使用该流吗?那is_none()呢发布于 2016-10-26 21:06:15
您提到的所有内容都有非常精确的含义,并直接映射到POSIX/BSD套接字API。由你来决定。
is_hup在读意味着另一边挂起它的发送端。意味着它不会再送你任何东西了。但是,它可能会使读取保持打开状态,您可能仍然希望向其发送一些数据。
shutdown关闭了读/写/两个https://doc.rust-lang.org/std/net/enum.Shutdown.html,所以这取决于你想做什么和什么时候。
TcpStream内部持有FileDesc,当您删除fd时,这将是close,因此,如果您不手动地使用shutdown,那么只要从使用中删除给定的TcpStream,就会关闭所有东西。https://github.com/rust-lang/rust/blob/master/src/libstd/sys/unix/fd.rs#L217
https://stackoverflow.com/questions/39942263
复制相似问题