< 返回版块

(-0_o#) 发表于 2018-01-04 18:33

Tags:socket, networking

Iryna

基于mio写的networking lib(reactor模式: one thread per eventloop). 刚开始(2018-01-03)挖坑, 目前(2018-01-04)进度约5%

直观一点就是浓缩成一行代码启动一个socket server, 目前还不能给channel设置handler (- -!), 已有的代码里也一堆TODO

 Acceptor::new().worker_count(4).bind("127.0.0.1", 12345).accept();

欢迎聚鞠指点, 有PR什么的就更好了.

评论区

写评论
作者 (-0_o#) 2018-01-05 20:38

新的进展

extern crate iryna;

use std;
use std::io::Write;
use std::io::Result;
use eventloop::*;
use channel::*;
use acceptor::*;

fn main() {
    Acceptor::new()
        .worker_count(4)
        .bind("127.0.0.1", 12345)
        .handler(Box::new(|ref mut ch| {
            ch.write("Hello, world.\n".as_bytes());
            Ok(())
        }))
        .accept();
    std::thread::sleep_ms(100000);
}
作者 (-0_o#) 2018-01-05 00:49
    #[test]
    fn it_works() {
        Acceptor::new().worker_count(4).bind("127.0.0.1", 12345)
            .handler(test)
            .accept();
        std::thread::sleep_ms(100000);
    }

    fn test(ch: &mut Channel) -> Result<()> {
        ch.write("Hello, world.\n".as_bytes());
        Ok(())
    }
Mike Tang 2018-01-04 19:15

鼓励开源!

1 共 3 条评论, 1 页