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

Метод bind

Метод bind класса UdpSocket привязывает сокет к заданному локальному адресу. Параметром метод принимает адрес сокета, который нужно привязать - например, строку вида "127.0.0.1:8080". Метод возвращает Result с привязанным сокетом UdpSocket в случае успеха или ошибку std::io::Error в противном случае. После успешной привязки сокет готов к приёму и отправке датаграмм.

Синтаксис

UdpSocket::bind(addr)

Пример

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

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

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

127.0.0.1:8080

Пример

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

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

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

true

Пример

Давайте попробуем привязать сокет к некорректному адресу и обработаем возникшую ошибку:

use std::net::UdpSocket; fn main() { let res = UdpSocket::bind("invalid_addr"); match res { Ok(_) => println!("bound"), Err(e) => println!("{}", e.kind()), } }

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

InvalidInput

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

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