-2

サンプルサーバーを適応させようとすると、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は影響しません。

4

1 に答える 1

2

mioこれは、パッケージの公開バージョンに問題があることが判明しました。

Cargo.toml以下をプルダウンに追加すると、最新の作業バージョンが使用されます。

[dependencies.mio]
git = "https://github.com/carllerche/mio.git"
于 2015-06-30T21:48:12.340 に答える