< 返回版块

tokyohuang123 发表于 2022-05-15 00:23

公司要测无线网络下数据拉满时候的无线信号的干扰强度(发数据时候无线强度),我一开始写了个socket服务无限循环喝客户端发消息 直接把cpu先跑死了。带宽根本拉不满

评论区

写评论
作者 tokyohuang123 2022-05-16 13:07

确实如此 但是这不是能练习下rust的机会吗

--
👇
pader: 为啥不是用 iperf 呢?

作者 tokyohuang123 2022-05-16 13:05

非常感谢 虽然我现在就是这样做的

--
👇
Aya0wind: tokio开N个task,每个task一个socket连接,往里打数据就行了,N你自己测试决定,如果可以建立多个不同ip和端口的连接效果可能更好。

const DATA:[u8;1024] = [b'a';1024];

#[tokio::main]
async fn main() {
    let N = 100;
    (0..N).for_each(|_| {
        tokio::spawn(async {
            let addr = "127.0.0.1:8080".parse().unwrap();
            let socket = TcpSocket::new_v4().unwrap();
            let mut stream = socket.connect(addr).await.unwrap();
            loop {
                stream.write_all(&DATA).await.unwrap();
            }
        });
    });
    tokio::signal::ctrl_c().await.unwrap()
}
pader 2022-05-16 10:22

为啥不是用 iperf 呢?

Aya0wind 2022-05-15 11:15

tokio开N个task,每个task一个socket连接,往里打数据就行了,N你自己测试决定,如果可以建立多个不同ip和端口的连接效果可能更好。

const DATA:[u8;1024] = [b'a';1024];

#[tokio::main]
async fn main() {
    let N = 100;
    (0..N).for_each(|_| {
        tokio::spawn(async {
            let addr = "127.0.0.1:8080".parse().unwrap();
            let socket = TcpSocket::new_v4().unwrap();
            let mut stream = socket.connect(addr).await.unwrap();
            loop {
                stream.write_all(&DATA).await.unwrap();
            }
        });
    });
    tokio::signal::ctrl_c().await.unwrap()
}
1 共 4 条评论, 1 页