首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何处理mio中的错误?

如何处理mio中的错误?
EN

Stack Overflow用户
提问于 2016-10-09 09:58:05
回答 1查看 193关注 0票数 1

我正在mio之上构建一个多线程异步HTTP服务器。

如何处理客户端TcpStream连接上的事件?

  • 对于is_readable,它非常简单:我读取请求并编写响应。
  • 至于其他种类,我不太清楚。如果我得到了shutdown()is_hup,我应该在is_erroris_hup的情况下使用该流吗?那is_none()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39942263

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档