let addr = "239.255.255.250:1982";
let socket = UdpSocket::bind(addr).unwrap();
let message = "some message".as_bytes();
socket.send_to(message, addr).unwrap();
此代码为最后一行提供以下错误:
Error { repr: Os { code: 49, message: "Can\'t assign requested address" } }
为什么会出现这种情况?
编辑: 我按照建议尝试了以下内容:
let addr = "239.255.255.250:1982";
let socket = UdpSocket::bind("127.0.0.1:34254").unwrap();
let message = "some message".as_bytes();
socket.send_to(message, addr).unwrap();
但不幸的是,这并没有改变任何事情。
答案 0 :(得分:6)
您用于绑定O(logn)
的地址是多播地址。
UdpSocket::bind
的参数应该是您从发送的本地地址。
The docs use 127.0.0.1:34254
。如果当前没有使用它,这应该适合您。此外,您可以为其提供一系列潜在的地址供您使用。
答案 1 :(得分:0)
受this answer的启发,我将地址更改为" 0.0.0.0:34254",并且有效:
let addr = "239.255.255.250:1982";
let socket = UdpSocket::bind("0.0.0.0:34254").unwrap();
let message = "some message".as_bytes();
socket.send_to(message, addr).unwrap();