- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我无法编译一个简单的应用程序来测试 tokio-codec。
tokio::net::tcp::stream::TcpStream 实现 AsyncRead 和 -Write。
但是当我尝试编译下面的代码时,我得到了下面的错误。
我还是 Rust 和 Tokio 的新手,所以毫无疑问我错过了一些明显的东西(我希望)......
main.rs:
use tokio::net::TcpListener;
use tokio::prelude::*;
use tokio_codec::{ Framed, LinesCodec };
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut listener = TcpListener::bind("127.0.0.1:12321").await?;
loop {
let (socket, _addr) = listener.accept().await?;
tokio::spawn(async move {
let (_sink, mut stream) = Framed::new(socket, LinesCodec::new()).split();
while let Some(Ok(line)) = stream.next().await {
println!("{:?}", line);
}
});
}
}
[dependencies]
tokio = { version = "0.2.6", features = ["full"] }
tokio-codec = "0.1.1"
error[E0277]: the trait bound `tokio::net::tcp::stream::TcpStream: tokio_io::async_read::AsyncRead` is not satisfied
--> src\main.rs:14:36
|
14 | let (mut sink, mut stream) = Framed::new(socket, LinesCodec::new()).split();
| ^^^^^^^^^^^ the trait `tokio_io::async_read::AsyncRead` is not implemented for `tokio::net::tcp::stream::TcpStream`
|
= note: required by `tokio_io::_tokio_codec::framed::Framed::<T, U>::new`
error[E0277]: the trait bound `tokio::net::tcp::stream::TcpStream: tokio_io::async_write::AsyncWrite` is not satisfied
--> src\main.rs:14:36
|
14 | let (mut sink, mut stream) = Framed::new(socket, LinesCodec::new()).split();
| ^^^^^^^^^^^ the trait `tokio_io::async_write::AsyncWrite` is not implemented for `tokio::net::tcp::stream::TcpStream`
|
= note: required by `tokio_io::_tokio_codec::framed::Framed::<T, U>::new`
error[E0599]: no method named `split` found for type `tokio_io::_tokio_codec::framed::Framed<tokio::net::tcp::stream::TcpStream, tokio_codec::lines_codec::LinesCodec>` in the current scope
--> src\main.rs:14:75
|
14 | let (mut sink, mut stream) = Framed::new(socket, LinesCodec::new()).split();
| ^^^^^ method not found in `tokio_io::_tokio_codec::framed::Framed<tokio::net::tcp::stream::TcpStream, tokio_codec::lines_codec::LinesCodec>`
|
= note: the method `split` exists but the following trait bounds were not satisfied:
`&mut tokio_io::_tokio_codec::framed::Framed<tokio::net::tcp::stream::TcpStream, tokio_codec::lines_codec::LinesCodec> : tokio::io::util::async_buf_read_ext::AsyncBufReadExt`
`&tokio_io::_tokio_codec::framed::Framed<tokio::net::tcp::stream::TcpStream, tokio_codec::lines_codec::LinesCodec> : tokio::io::util::async_buf_read_ext::AsyncBufReadExt`
`tokio_io::_tokio_codec::framed::Framed<tokio::net::tcp::stream::TcpStream, tokio_codec::lines_codec::LinesCodec> : tokio::io::util::async_buf_read_ext::AsyncBufReadExt`
最佳答案
tokio-codec
是一个过时的 crate ,它依赖于 Tokio (0.1.7) 的 pre-async/await 版本
编解码器 seem to have been moved至tokio-util这取决于 Tokio 0.2,所以你应该有更多的运气。
一般来说,当编译器告诉你一个类型没有实现一个 trait,但是在文档中你看到它实现了,这意味着你有两个不同版本的 crate 来定义你的项目中的 trait(在这种情况下是 Tokio 0.1 和 0.2) .
关于asynchronous - 特征绑定(bind) `tokio::net::tcp::stream::TcpStream: tokio_io::async_read::AsyncRead` 不满足,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59532617/
我似乎无法让编译器让我包装 Tokio AsyncRead: use std::io::Result; use core::pin::Pin; use core::task::{Context, Po
我正在运行一个 AsyncReader 来打开另一个应用程序正在下载的共享 MPG 文件(渐进式下载)。共享 MPG 文件是使用 FILE-SHARE-READ | 创建的文件共享删除 | FILE-
我正在尝试构建一个从 SFTP 服务器提取文件并将其上传到 S3 的服务。 对于 SFTP 部分,我使用 async-ssh2 ,这给了我一个实现 futures::AsyncRead 的文件处理程序
我正在尝试理解 Rust 中的异步 I/O。以下代码基于 Katharina Fey 的片段 Jan 2019 talk这对我有用: use futures::future::Future; use
我正在尝试包装 AsyncRead在另一个 AsyncRead (并对其进行一些数据处理)。但是,当尝试存储 Future 时的 .read()我遇到终身问题:self has an anonymou
我无法编译一个简单的应用程序来测试 tokio-codec。 tokio::net::tcp::stream::TcpStream 实现 AsyncRead 和 -Write。 但是当我尝试编译下面的
我是一名优秀的程序员,十分优秀!