7得票1回答
异步块创建的未来不是`Send`类型,因为涉及到*mut u8。

我已经能够继续实现我的异步UDP服务器。但是,由于我的变量data的类型为*mut u8,而不是Send,因此出现了这个错误,而且出现了两次: error: future cannot be sent between threads safely help: within `impl st...

7得票1回答
使用Rust futures运行异步可变操作

我正在使用tokio-rs构建一个Rust服务,并且到目前为止,我对这个技术栈感到满意。现在,我正在尝试链接包含写操作的异步操作,并且在借用检查器方面遇到了困难。 我的简化的最小代码示例如下: extern crate futures; // 0.1.21 use futures::Fu...

7得票1回答
Hyper中的共享可变状态

我正在尝试在Hyper Web服务器中创建一个计数器来计算它接收到的请求总数。我使用一个 Arc<Mutex<u64>>来存储计数。然而,我还没有找到合适的 move 和 .clone() 的组合来满足闭包的类型。这里有一些代码可以编译,但会在每次请求时重置计数器: ...

7得票3回答
如何测试绑定到tokio TcpStream的未来?

我有一个将TCP流用LinesCodec封装在Framed中的未来计划。 当我试图在测试中进行封装时,大约20%的时间会发生未来阻塞,但由于没有任何东西在监听我要连接的套接字,我希望始终获取错误: thread 'tokio-runtime-worker-0' panicked at 'e...

7得票1回答
Tokio错误:即使使用#[tokio::main]和单个版本的Tokio安装,仍然出现“没有正在运行的反应器”。

当运行以下代码时: use futures::executor; ... pub fn store_temporary_password(email: &str, password: &str) -> Result<(), Box<dyn Error>...

7得票1回答
trait `std::marker::Sync`没有为`std::sync::mpsc::Sender<i32>`实现

我正在尝试使用MPSC构建一个多线程应用程序,但遇到了标题中的错误。我不确定这种情况下的正确模式是什么 - 我正在寻找一种模式,可以克隆生产者通道并将其移动到新线程中以供使用。 这个新线程将保持一个打开的websocket,并在收到websocket消息时通过生产者发送消息数据的子集。由于消...

7得票2回答
Tokio可以理解为类似于JavaScript的事件循环,或者像它一样使用吗?

我不确定 tokio 是否类似于JavaScript中的事件循环,也是一种非阻塞运行时,或者它是否可以用类似的方式工作。在我的理解中,tokio是一个用于Rust中的futures的运行时。因此,它必须实现某种用户级线程或任务,这可以通过事件循环(至少部分地)来调度新任务。 让我们看一下以下...

7得票1回答
如何将超文本响应主体写入文件?

我正在尝试使用tokio编写一个测试程序,从网站抓取文件并将流式响应写入文件。Hyper网站提供的示例使用while循环和.data()方法来处理响应主体,但我想使用.map()和其他几种方式来操作流。 我认为下一个合理的尝试是使用TryStreamExt中的.into_async_read(...

7得票1回答
如何在Tokio中使用async/await语法?

我正在尝试在Rust中使用async/await处理进程。我正在使用tokio和tokio-process: #![feature(await_macro, async_await, futures_api)] extern crate tokio; extern crate tokio_...

7得票2回答
如何使用问号操作符来处理Tokio futures中的错误?

我有一个客户端处理Future,它会执行一些操作。是否可以使用impl Future&lt;Item = (), Error = io::Error&gt;作为返回类型并进行更好的错误处理呢? pub fn handle_client(client: Client) -&gt; impl F...