Функции bind
работают со всем, что реализует ToSocketAddrs
.
. Из документации вы можете использовать строку имени хоста / порта с этой чертой:
Создание итератора SocketAddr
из имени хоста:
use std::net::{SocketAddr, ToSocketAddrs};
// assuming 'localhost' resolves to 127.0.0.1
let mut addrs_iter = "localhost:443".to_socket_addrs().unwrap();
assert_eq!(addrs_iter.next(), Some(SocketAddr::from(([127, 0, 0, 1], 443))));
assert!(addrs_iter.next().is_none());
// assuming 'foo' does not resolve
assert!("foo:443".to_socket_addrs().is_err());
Однако ссылка http://torrent.ubuntu.com:6969/announce
является URL-адресом HTTP , икрайне редко использовать UDP с HTTP, но если сервер действительно прослушивает UDP, вы можете подключиться к нему с помощью UdpSocket::bind("torrent.ubuntu.com:6969")
.