gpt4 book ai didi

rust - 使用带有字符串 url 的 std::net::UdpSocket

转载 作者:行者123 更新时间:2023-11-29 08:35:35 25 4
gpt4 key购买 nike

我想使用 udp 协议(protocol)发送消息。我有一个像这样的网址这个:http://torrent.ubuntu.com:6969/announce

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

可以转换url地址吗?

最佳答案

bind 函数适用于任何实现 ToSocketAddrs 的东西。 .

从文档中,您可以使用具有此特征的主机名/端口字符串:

Creating a SocketAddr iterator from a hostname:

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/announceHTTP URL,并且将 UDP 与 HTTP 一起使用是极其不常见的,但假设此服务器确实监听 UDP,您可以使用 UdpSocket::bind("torrent.ubuntu.com:6969") 连接到它.

关于rust - 使用带有字符串 url 的 std::net::UdpSocket,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55797170/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com