当前位置: 首页 > 知识库问答 >
问题:

没有为“结果< std::net::TcpListener,std::io::Error >”实现特征“Future”

哈涵容
2023-03-14

我尝试使用Tokio库在生锈中初始化具有异步功能的服务器:

use std::net::TcpListener;

#[tokio::main]
async fn main() {
    // let listener=TcpListener::bind("localhost:8080").await.unwrap();
    let listener = TcpListener::bind("127.0.0.1:8080").await.unwrap();
    let (socket,_addr)=listener.accept().await.unwrap();
}

这会抛出一个错误,表示:

 the trait `Future` is not implemented for `Result<std::net::TcpListener, std::io::Error>`

当我将鼠标悬停在<code>侦听器</code>上时,其类型未知。

共有1个答案

督德明
2023-03-14

你有:

use std::net::TcpListener;

您可能希望拥有:

use tokio::net::TcpListener;

以下是tokio文档中的一个例子:

use tokio::net::TcpListener;

use std::io;

async fn process_socket<T>(socket: T) {
    // do work with socket here
}

#[tokio::main]
async fn main() -> io::Result<()> {
    let listener = TcpListener::bind("127.0.0.1:8080").await?;

    loop {
        let (socket, _) = listener.accept().await?;
        process_socket(socket).await;
    }
}
 类似资料:
  • 我有一个这样的提供程序设置: 我正在尝试使用actix web中的内置方法,将 或类似的东西。 但是,我反而收到以下错误: 有人能帮我弄清楚怎么解决这个问题吗?我对std::marker::size做了一些研究,但我不知道如何使用它来解决这个问题。

  • 我正在尝试运行基本的示例: 我得到的错误: Rust版本: 库版本: 有人知道这里出了什么问题吗?

  • 我以前见过这样做,但我不记得如何有效地初始化已知长度的与长度相同的。这里有一个很好的例子: 我已经仔细阅读了这一页关于高级矩阵初始化的内容,但是没有明确解释执行此操作的方法。

  • 问题内容: 我尝试将matlab代码转换为numpy,并发现numpy与std函数的结果不同。 在matlab中 在numpy中 这正常吗?我应该如何处理呢? 问题答案: NumPy函数采用一个可选参数:“自由度增量”。默认情况下是。对其进行设置以获取MATLAB结果: 要添加更多上下文,在计算方差(标准偏差为平方根)时,通常将其除以我们拥有的值的数量。 但是,如果我们从较大的分布中选择元素的随机

  • std::cout是std::ostream的一个实例。我可以在一个名为usr/include/c/7/iostream的文件中看到std::cout的声明: 而std::ostream由typedef std::basic\u ostream定义 此外,您似乎无法创建std::ostream的实例。请参阅此演示代码片段: 以下是编译器对上述代码段的抱怨: 问题来了,因为

  • 我希望编写一个模板函数来接受Eigen::vectrox*(float/int/double)和std::vector 如何声明模板?下面的方法不起作用。 其基本原理是不编写单独的函数所有不同的组合。