Вариант Read
Вариант Read класса Shutdown представляет собой
один из способов управления сетевым соединением. Он
используется в методе shutdown для того, чтобы
закрыть поток чтения данных, при этом оставляя
возможность записи. Параметров вариант не принимает,
так как является простым перечислением.
Синтаксис
Shutdown::Read
Пример
Давайте создадим TCP-соединение и вызовем метод
shutdown с вариантом Read, чтобы запретить
дальнейшее чтение из сокета:
use std::net::{TcpStream, Shutdown};
fn main()
{
let mut stream = TcpStream::connect("127.0.0.1:8080").unwrap();
let res = stream.shutdown(Shutdown::Read);
println!("{:?}", res);
}
Результат выполнения кода (при успешном соединении):
Ok(())
Пример
Если попытаться прочитать данные после вызова
shutdown(Shutdown::Read), операция чтения
вернёт ошибку или ноль байт. Рассмотрим пример
с обработкой ошибки:
use std::net::{TcpStream, Shutdown};
use std::io::Read;
fn main()
{
let mut stream = TcpStream::connect("127.0.0.1:8080").unwrap();
stream.shutdown(Shutdown::Read).unwrap();
let mut buf = [0; 10];
let res = stream.read(&mut buf);
println!("{:?}", res);
}
Результат выполнения кода (при успешном соединении):
Ok(0)
Смотрите также
-
класс
Shutdown,
который управляет закрытием сетевого соединения -
вариант
Write,
который закрывает только поток записи -
вариант
Both,
который закрывает и чтение, и запись -
тип
ToSocketAddrs,
который используется для разрешения адресов