导入mio :: tcp :: TcpStream但获取std :: net :: tcp :: TcpStream

时间:2015-06-29 20:47:42

标签: rust mio

在尝试调整example server时,不确定该行为会导致TcpStream我所要求的行为以及我所获得的行为看起来完全不同

结构定义示例:

use mio::tcp::TcpStream;

struct Connection {
    socket: TcpStream
}

后来有一个为Connection定义的函数:

fn writable(&mut self, event_loop: &mut EventLoop<Server>) -> Result<()> {
    loop {
        let (len, res) = {
            let buf = &self.buffer.bytes();
            let len = buf.len();
            let res = self.socket.write_slice(buf);
            (len, res)
        };

write_slice上的错误显示为:

error: type `std::net::tcp::TcpStream` does not implement any method in scope named `write_slice`

现在std::net::tcp::TcpStream没有实现这一点,但mio::tcp::TcpStream确实如此。为什么一个人会替换另一个?

将此设置为别名,use mil::tcp::TcpStream as MioTcpStream也不会对此产生影响。

1 个答案:

答案 0 :(得分:2)

事实证明这是mio包的已发布版本的问题。

将以下内容添加到Cargo.toml,并使用最新的工作版本:

[dependencies.mio]
git = "https://github.com/carllerche/mio.git"