Throws AtIOException when the socket fails before the bytes leave.
AtIOException
@override Future<void> flush() async { try { await _socket.flush(); } on IOException catch (e) { throw _failed(e); } }