将std :: net :: UdpSocket与字符串url一起使用

问题描述 投票:-1回答:1

我想用udp协议发送消息。我有这样的网址:http://torrent.ubuntu.com:6969/announce

但在文档和所有示例中,我看到方法bind只接受IP地址和端口。

可以转换网址吗?

rust udp
1个回答
0
投票

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")连接到它。

© www.soinside.com 2019 - 2024. All rights reserved.