如何处理mio中的错误?

时间:2016-10-09 09:58:06

标签: rust mio

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

我应该如何处理客户端City hasHarbor(another object property) some Harbor 连接上的事件?

  • 对于TcpStream来说,它非常简单:我阅读了请求并写了回复。
  • 对于其他种类,我不确定。如果我获得is_readableshutdown(),我应该is_error我的流吗?那么is_hup呢?

1 个答案:

答案 0 :(得分:1)

您提到的所有内容都具有非常精确的含义,并直接映射到POSIX / BSD Socket API。由你来决定。

is_hup对读取意味着对方绞死了它的发送方。这意味着它不会再发送任何东西。但是它可能会使读数保持打开状态,您可能仍希望向其发送一些数据。

shutdown关闭阅读/写作/两者https://doc.rust-lang.org/std/net/enum.Shutdown.html,所以这取决于你想要做什么和什么时候。

TcpStream在内部持有FileDesc,当您放弃时close fd,所以如果您不{} 1}手动关闭所有内容无论如何,只要你从使用中删除了shutdownhttps://github.com/rust-lang/rust/blob/master/src/libstd/sys/unix/fd.rs#L217