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

Метод set_nonblocking

Метод set_nonblocking класса TcpStream управляет режимом работы сокета. Если передать true, сокет переводится в неблокирующий режим, при котором операции чтения и записи не приостанавливают выполнение потока, а сразу возвращают результат. Если передать false, сокет возвращается в обычный блокирующий режим. Параметром метод принимает логическое значение bool, указывающее нужный режим. Метод возвращает Result с типом в случае успеха или ошибку ввода-вывода.

Синтаксис

tcp_stream.set_nonblocking(nonblocking)

Пример

Давайте создадим соединение с сервером и переведём сокет в неблокирующий режим:

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

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

Ok(())

Пример

Давайте вернём сокет в блокирующий режим, передав false:

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

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

Ok(())

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

  • класс TcpStream,
    который представляет TCP-соединение
  • метод set_read_timeout,
    который задаёт таймаут для операций чтения
  • метод set_write_timeout,
    который задаёт таймаут для операций записи
  • метод set_nodelay,
    который управляет алгоритмом Нейгла
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить