10得票1回答
如何同时执行多个异步函数并获取结果?

我尝试过使用Tokio tasks,但没有可执行多个任务的示例。这段代码有什么问题? fn main() { block_on(speak()); } async fn speak() { let hold = vec![say(), greet()]; let r...

10得票2回答
在Tokio中是否可能关闭TcpListener?

我有一个 `tokio_core::net::TcpListener` 对象,我创建了它并调用了 `incoming` 方法去获取一个传入连接的流。然后,我使用该流上的 `for_each` 方法将其转换为一个 future,并在事件循环中运行该 future。一旦我这样做了,是否有任何方法可...

9得票2回答
异步文件IO有意义吗?

像tokio这样的Rust异步运行时提供了许多标准函数的“异步化”副本,包括一些文件IO函数,其原理基本上是通过召唤相应的阻塞任务(在新线程上?)来工作。这些函数的例子包括tokio::fs::create_dir_all、tokio::fs::read_dir、tokio::fs::read...

9得票2回答
如何在Tokio中安排重复任务?

我正在用Tokio将使用Rust编写的同步套接字代码替换为异步等效代码。Tokio使用 futures 进行异步活动,因此任务被链接在一起并排队到执行线程池中执行。 我想要做的基本伪代码如下: let tokio::net::listener = TcpListener::bind(&am...

8得票2回答
如何在Rust中使用hyper、tokio和futures设置HTTP请求的超时时间?

如何在使用异步Hyper(>=0.11)时为HTTP请求设置超时时间? 以下为没有超时时间的代码示例: extern crate hyper; extern crate tokio_core; extern crate futures; use futures::Future; u...

8得票1回答
将AsyncRead转换为字节的TryStream的最佳方法是什么?

我有一个AsyncRead对象,想使用tokio 0.2和futures 0.3将其转换为Stream<Item = tokio::io::Result<Bytes>>。 目前我能做到的最好方式如下: use bytes::Bytes; // 0.4.12 use ...

8得票2回答
Tokio异步等待与特性

我希望在一个特质中编写异步函数,但由于尚未支持特质中的async fn,因此我正在尝试找到等效的方法接口。这是我在 Rust nightly(2019-01-01)中尝试的代码: playground #![feature(await_macro, async_await, future...

8得票2回答
理解错误:未为`()`实现特性`futures::future::Future`。

这个问题是关于如何阅读Rust文档并提高对Rust的理解,以便了解如何解决特定的编译器错误。 我已经阅读了tokio文档并尝试了许多示例。在编写自己的代码时,我经常遇到我不理解的编译器错误,并且经常发现我可以修复代码,但不理解为什么需要特定的语法。 我根据tokio的hello world...

8得票1回答
使用tokio_timer重复执行Rust任务

我正在使用Tokio框架在Rust中创建一个重复任务。下面的代码基于对tokio-timer crate添加此功能的已完成的更改请求。 尝试编译时,我收到以下错误消息: error[E0281]: type mismatch: the type `fn() {my_cron_func}` ...

8得票2回答
如何使用Rust和Tokio构建多个并发服务器?

我希望使用Rust和Tokio构建多个并发服务器,这些服务器会在不同的端口上运行: let mut core = Core::new().unwrap(); let handle = core.handle(); // I want to bind to multiple port her...