gpt4 book ai didi

sockets - Rust 中的套接字服务器不接收

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

服务器.rs:

use std::net::UdpSocket;

fn main() -> std::io::Result<()>{
{
let mut socket = UdpSocket::bind("127.0.0.1:3000")?;
let mut buf = [0; 10];
let (amt, src) = socket.recv_from(&mut buf)?;

let buf = &mut buf[..amt];
buf.reverse();
socket.send_to(buf, &src)?;
}
Ok(())
}

strace ./server 输出在此处停止:

<...>
socket(AF_INET, SOCK_DGRAM|SOCK_CLOEXEC, IPPROTO_IP) = 3
bind(3, {sa_family=AF_INET, sin_port=htons(3000), sin_addr=inet_addr("127.0.0.1")}, 16) = 0
recvfrom(3,

尝试调用echo -n "qwerty"| netcat 127.0.0.1 3000 运行上面的程序后没有任何变化。

为什么?

最佳答案

默认情况下,netcat 使用 TCP。指示 netcat 改为使用 UDP 会产生预期的结果:

echo -n "qwerty" | netcat -u 127.0.0.1 3000

mcve 输出:

/home/svetlin/.cargo/bin/cargo run --color=always --package mcve --bin mcve
Finished dev [unoptimized + debuginfo] target(s) in 0.11s
Running `target/debug/mcve`

Process finished with exit code 0

关于sockets - Rust 中的套接字服务器不接收,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56613916/

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