Тип Shutdown
Тип Shutdown представляет собой перечисление,
которое используется для указания того, какая часть
сетевого соединения должна быть закрыта. Он передаётся
в качестве параметра в метод shutdown для
объектов, реализующих трейт TcpStream и
подобных сетевых структур. Перечисление содержит
три варианта: Read, Write и Both.
Синтаксис
enum Shutdown
{
Read,
Write,
Both,
}
Варианты
Перечисление Shutdown содержит следующие варианты:
Shutdown::Read // закрывает только чтение
Shutdown::Write // закрывает только запись
Shutdown::Both // закрывает и чтение, и запись
Пример
Давайте создадим TCP-соединение и закроем
только запись, используя вариант Shutdown::Write:
use std::net::{TcpStream, Shutdown};
fn main()
{
let mut stream = TcpStream::connect("127.0.0.1:8080").unwrap();
let res = stream.shutdown(Shutdown::Write);
println!("{:?}", res);
}
Результат выполнения кода:
Ok(())
Пример
Давайте закроем обе части соединения,
используя вариант Shutdown::Both:
use std::net::{TcpStream, Shutdown};
fn main()
{
let mut stream = TcpStream::connect("127.0.0.1:8080").unwrap();
let res = stream.shutdown(Shutdown::Both);
println!("{:?}", res);
}
Результат выполнения кода:
Ok(())
Пример
Давайте закроем только чтение,
используя вариант 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::Read,
который закрывает только чтение соединения -
тип
Shutdown::Write,
который закрывает только запись соединения -
тип
Shutdown::Both,
который закрывает обе части соединения -
тип
SocketAddr,
который представляет сетевой адрес сокета