РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1155 of 1245 menu

Вариант Both класса Shutdown

Вариант Both класса Shutdown используется в методе shutdown для указания того, что нужно закрыть одновременно и чтение, и запись сетевого соединения. Он объединяет в себе поведение вариантов Read и Write. Параметров вариант не принимает.

Синтаксис

Shutdown::Both

Пример

Давайте создадим TCP-соединение и закроем его с помощью варианта Both:

use std::net::{TcpListener, TcpStream, Shutdown}; use std::thread; fn main() { let listener = TcpListener::bind("127.0.0.1:8080").unwrap(); let handle = thread::spawn(move || { let mut stream = TcpStream::connect("127.0.0.1:8080").unwrap(); stream.shutdown(Shutdown::Both).unwrap(); }); let (mut stream, _) = listener.accept().unwrap(); stream.shutdown(Shutdown::Both).unwrap(); handle.join().unwrap(); println!("connection closed"); }

Результат выполнения кода:

"connection closed"

Пример

Давайте сравним вариант Both с вариантами Read и Write, закрывая соединение в разных режимах:

use std::net::{TcpListener, TcpStream, Shutdown}; use std::thread; fn main() { let listener = TcpListener::bind("127.0.0.1:8081").unwrap(); let handle = thread::spawn(move || { let mut stream = TcpStream::connect("127.0.0.1:8081").unwrap(); stream.shutdown(Shutdown::Read).unwrap(); println!("read side closed"); }); let (mut stream, _) = listener.accept().unwrap(); stream.shutdown(Shutdown::Both).unwrap(); println!("both sides closed"); handle.join().unwrap(); }

Результат выполнения кода:

"both sides closed" "read side closed"

Смотрите также

  • класс Shutdown,
    который управляет закрытием сетевого соединения
  • вариант Read,
    который закрывает только чтение соединения
  • вариант Write,
    который закрывает только запись соединения
  • типаж ToSocketAddrs,
    который преобразует значения в адреса сокетов
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить