mio

    1熱度

    1回答

    我想使用mio在Rust中編寫一個異步服務器,並且遇到緩衝區類型問題。我嘗試過不同的緩衝區類型,無法使其工作。我當前的代碼是: extern crate mio; extern crate bytes; use std::io; use std::io::{Error, ErrorKind}; use std::net::SocketAddr; use std::str::FromSt

    5熱度

    1回答

    許多庫允許您定義一個類型,該類型實現給定的trait以用作回調處理程序。這要求您將所有需要處理事件的數據彙總到單個數據類型中,這會使借入複雜化。 例如,mio允許您實現Handler並提供您的結構,當你run the EventLoop。考慮一個例子與這些無足輕重的數據類型: struct A { pub b: Option<B> }; struct B; struct MyH

    1熱度

    1回答

    我正在mio上構建一個多線程的異步HTTP服務器。 我應該如何處理客戶端TcpStream連接上的事件? 對於is_readable這很簡單:我讀取請求並寫入響應。 對於其他種類我不確定。我應該shutdown()流如果我得到is_error或is_hup?那麼is_none()?

    4熱度

    1回答

    當使用MIO(0.3.5)時,如何檢測連接的終止? 我試過如下: extern crate mio; use mio::{EventLoop,Token,ReadHint}; use std::io::Read; fn main(){ let listener = mio::tcp::TcpListener::bind("localhost:1234").unwrap();

    1熱度

    1回答

    爲了學習的目的,我正在嘗試編寫一個小程序,它將實現用於UDP數據包的echo-server,它將工作在一定的港口(比如說10000-60000)。因此,爲了避免爲此發送50k線程,我需要使用異步IO,並且mio非常適合執行此任務。但我有一個問題,從一開始就與此代碼: extern crate mio; extern crate bytes; use mio::udp::*; use byte

    1熱度

    1回答

    我克隆,並試圖建立MIO coroutines library的聯繫,但它的依賴似乎衝突: native library `kernel32` is being linked to by more than one package, and can only be linked to by one package kernel32-sys v0.2.0 kernel32-sy

    3熱度

    1回答

    我是一個Rust初學者,正在努力解決異步IO問題。我決定使用mio。 我讀過一些源代碼+教程,但仍然有一些基本部分我不明白。我正在使用netcat -k -l 127.0.0.1 9999設置服務器。然後我用cargo(下面的代碼)進行簡單測試。我期待着看到「準備就緒」或「打勾」的恐慌。但它永遠不會發生,測試永遠在運行。 extern crate mio; use mio::*; #[allo

    1熱度

    1回答

    我已經在mio中編寫了一個TCP服務器並註冊了多個超時,但只有最後一個註冊的超時會觸發。我是否需要一個封裝器來將我的超時結合起來,或者有沒有其他方法可以在mio v0.5中註冊多個超時?

    1熱度

    1回答

    我正在學習Rust並試圖編寫websocket服務器。邏輯如下:WSConnectionFactory創建處理傳入消息並根據任意規則將其發送到其他客戶端的WSHandler。 問題是我不知道如何實現這樣的行爲。 限制:我不能更改Factory和Handler特徵的簽名,因爲它們由ws-rs庫提供。 問:如何使用RefCell/Cell實現這個功能? extern crate rand; exte