我想用udp协议发送消息。我有这样的网址:http://torrent.ubuntu.com:6969/announce
。
但在文档和所有示例中,我看到方法bind
只接受IP地址和端口。
可以转换网址吗?
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
是一个HTTP URL,并且使用UDP与HTTP非常罕见,但假设此服务器确实侦听UDP,您可以使用UdpSocket::bind("torrent.ubuntu.com:6969")
连接到它。