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

Метод join_multicast_v4

Метод join_multicast_v4 класса UdpSocket подключает UDP-сокет к группе многоадресной рассылки IPv4. Параметром метод принимает адрес группы multiaddr типа Ipv4Addr и адрес сетевого интерфейса interface типа Ipv4Addr, через который сокет будет присоединяться к группе. Метод возвращает Result<(), Error>: при успешном подключении возвращается Ok(()), а при ошибке - Err.

Подключение к группе многоадресной рассылки позволяет сокету получать пакеты, отправленные на указанный групповой адрес. Для приёма таких пакетов сокет должен быть привязан к соответствующему адресу и порту с помощью метода bind.

Синтаксис

socket.join_multicast_v4(multiaddr, interface)

Пример

Давайте создадим UDP-сокет, привяжем его к адресу "0.0.0.0:0" и подключимся к группе многоадресной рассылки "224.0.0.1" через интерфейс "0.0.0.0":

use std::net::{UdpSocket, Ipv4Addr}; fn main() { let socket = UdpSocket::bind("0.0.0.0:0").unwrap(); let multiaddr = Ipv4Addr::new(224, 0, 0, 1); let interface = Ipv4Addr::new(0, 0, 0, 0); let res = socket.join_multicast_v4(multiaddr, interface); println!("{:?}", res); }

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

Ok(())

Пример

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

use std::net::{UdpSocket, Ipv4Addr}; fn main() { let socket = UdpSocket::bind("0.0.0.0:0").unwrap(); let multiaddr = Ipv4Addr::new(0, 0, 0, 0); let interface = Ipv4Addr::new(0, 0, 0, 0); let res = socket.join_multicast_v4(multiaddr, interface); println!("{:?}", res); }

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

Err(Os { code: 22, kind: InvalidInput, message: "Invalid argument" })

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

  • класс UdpSocket,
    который представляет UDP-сокет
  • метод bind,
    который привязывает сокет к адресу
  • метод recv_from,
    который принимает данные от источника
  • метод send_to,
    который отправляет данные по указанному адресу
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить