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

Класс TcpListener

Класс TcpListener представляет собой TCP-сокет, который привязывается к адресу и порту и ожидает входящие соединения от клиентов. После привязки слушатель может принимать соединения с помощью метода accept или перебирать их через итератор incoming. Каждое принятое соединение представлено парой: поток TcpStream и адрес клиента SocketAddr.

Синтаксис

use std::net::TcpListener; let listener = TcpListener::bind(addr)?; let (stream, addr) = listener.accept()?;

Пример

Давайте привяжем слушатель к локальному адресу "127.0.0.1:8080" и выведем его локальный адрес:

use std::net::TcpListener; fn main() { let listener = TcpListener::bind("127.0.0.1:8080").unwrap(); println!("{}", listener.local_addr().unwrap()); }

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

127.0.0.1:8080

Пример

Давайте привяжем слушатель к порту 0, чтобы операционная система сама выбрала свободный порт:

use std::net::TcpListener; fn main() { let listener = TcpListener::bind("127.0.0.1:0").unwrap(); let addr = listener.local_addr().unwrap(); println!("{}", addr.port() > 0); }

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

true

Пример

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

use std::net::TcpListener; fn main() { let listener = TcpListener::bind("127.0.0.1:0").unwrap(); listener.set_nonblocking(true).unwrap(); let res = listener.accept(); println!("{}", res.is_err()); }

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

true

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

  • класс TcpStream,
    который представляет TCP-соединение между клиентом и сервером
  • метод accept,
    который принимает входящее соединение и возвращает поток и адрес
  • метод incoming,
    который возвращает итератор по входящим соединениям
  • метод bind,
    который создаёт слушатель, привязанный к указанному адресу
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить