Метод read_timeout
Метод read_timeout класса TcpStream возвращает
текущее значение таймаута для операций чтения из сокета.
Метод не принимает параметров и возвращает значение типа
io::Result<Option<Duration>>. Если таймаут не установлен,
возвращается None. Если таймаут установлен, возвращается
Some(Duration) с соответствующим значением.
Синтаксис
tcp_stream.read_timeout()
Пример
Давайте создадим TCP-соединение и проверим таймаут чтения по умолчанию:
use std::net::TcpStream;
fn main()
{
let stream = TcpStream::connect("127.0.0.1:8080").unwrap();
let res = stream.read_timeout().unwrap();
println!("{:?}", res);
}
Результат выполнения кода:
None
Пример
Давайте установим таймаут чтения с помощью метода
set_read_timeout, а затем проверим его значение
через read_timeout:
use std::net::TcpStream;
use std::time::Duration;
fn main()
{
let stream = TcpStream::connect("127.0.0.1:8080").unwrap();
stream.set_read_timeout(Some(Duration::from_secs(5))).unwrap();
let res = stream.read_timeout().unwrap();
println!("{:?}", res);
}
Результат выполнения кода:
Some(5s)
Пример
Давайте сбросим таймаут чтения, установив его в None,
и проверим результат:
use std::net::TcpStream;
use std::time::Duration;
fn main()
{
let stream = TcpStream::connect("127.0.0.1:8080").unwrap();
stream.set_read_timeout(Some(Duration::from_secs(10))).unwrap();
stream.set_read_timeout(None).unwrap();
let res = stream.read_timeout().unwrap();
println!("{:?}", res);
}
Результат выполнения кода:
None
Смотрите также
-
метод
set_read_timeout,
который устанавливает таймаут для операций чтения -
метод
write_timeout,
который возвращает таймаут для операций записи -
метод
set_write_timeout,
который устанавливает таймаут для операций записи -
класс
TcpStream,
который представляет TCP-соединение