Все, что вы упомянули, имеет очень точное значение и отображается непосредственно в POSIX/BSD Socket API. Тебе решать.
is_hup
on Read означает, что другая сторона повесила боковую сторону. Это означает, что он больше не отправит вам ничего. Однако это могло бы держать чтение открытым, и вы все равно можете отправить ему некоторые данные.
shutdown
закрывает чтение/запись/оба https://doc.rust-lang.org/std/net/enum.Shutdown.html, так что вам решать, что и когда вы хотите сделать.
TcpStream
внутренне держит FileDesc
и что будет close
в fd
когда вы бросьте, так что если вы не shutdown
вручную все будет закрыт в любом случае, как только вы удалите данный TcpStream
от использования. https://github.com/rust-lang/rust/blob/master/src/libstd/sys/unix/fd.rs#L217
Вы видели [эту серию от Германа Дж. Радтке] (http://hermanradtke.com/2015/07/12/my-basic-understanding-of-mio-and-async-io.html)? Он содержит полезную информацию об обработке ошибок в 'mio'. – ljedrz
Спасибо, что читать было интересно. К сожалению, он много говорит об обработке ошибок :) – ElefEnt