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

Метод set_write_timeout

Метод set_write_timeout класса TcpStream устанавливает максимальное время ожидания для операций записи в поток. Если запись не завершится за указанный интервал, будет возвращена ошибка с типом WouldBlock или TimedOut. Параметром метод принимает значение типа Option<Duration>: Some(duration) задаёт таймаут, а None отключает его.

Метод возвращает результат типа io::Result<()>. При успешной установке таймаута возвращается Ok(()), при ошибке - Err.

Синтаксис

TcpStream::set_write_timeout(&self, timeout: Option<Duration>) -> io::Result<()>

Пример

Давайте установим таймаут записи в 5 секунд для TCP-соединения:

use std::net::TcpStream; use std::time::Duration; fn main() { let stream = TcpStream::connect("127.0.0.1:8080"); match stream { Ok(stream) => { let res = stream.set_write_timeout(Some(Duration::from_secs(5))); println!("{:?}", res); }, Err(e) => { println!("Connection failed: {}", e); } } }

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

Ok(())

Пример

Давайте отключим таймаут записи, передав None:

use std::net::TcpStream; fn main() { let stream = TcpStream::connect("127.0.0.1:8080"); match stream { Ok(stream) => { let res = stream.set_write_timeout(None); println!("{:?}", res); }, Err(e) => { println!("Connection failed: {}", e); } } }

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

Ok(())

Пример

Давайте установим таймаут записи в 100 миллисекунд и проверим его значение через метод write_timeout:

use std::net::TcpStream; use std::time::Duration; fn main() { let stream = TcpStream::connect("127.0.0.1:8080"); match stream { Ok(stream) => { let _ = stream.set_write_timeout(Some(Duration::from_millis(100))); let res = stream.write_timeout(); println!("{:?}", res); }, Err(e) => { println!("Connection failed: {}", e); } } }

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

Ok(Some(100ms))

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

  • метод set_read_timeout,
    который устанавливает таймаут для операций чтения
  • метод write_timeout,
    который возвращает текущий таймаут записи
  • метод read_timeout,
    который возвращает текущий таймаут чтения
  • метод set_nonblocking,
    который переводит поток в неблокирующий режим
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить