Skip to content

libevlite - A simple Network library that contains the Event library, Thread library, Communications library. Event library is LIBEVENT Lite Edition, so named for the LIBEVLITE

shangzuoyan/libevlite

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

61 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

libevlite网络通信库(Linux, Darwin, *BSD)

1. 基础事件模块( include/event.h ), 支持的IO复用机制: epoll和kqueue

    1) 类型说明:
        1> 事件类型说明:
            读事件(EV_READ),
            写事件(EV_WRITE),
            超时事件(EV_TIMEOUT)
            在三种事件类型的基础上, 支持事件驻留在事件集中的永久模式(EV_PERSIST)
        2> 网络事件event_t
        3> 网络事件集evsets_t

    2) 基于事件(event_t)的方法说明:
        1> 设置事件属性 event_set()
        2> 设置事件回调函数 event_set_callback()

    3) 基于事件集(evsets_t)的方法说明:
        1> 向事件集中添加事件 evsets_add()
        2> 从事件集中删除事件 evsets_del()
        3> 分发并处理事件 evsets_dispatch()

2. 网络线程模块( include/threads.h )


3. 通信模块( include/networks.h )

    1) 创建网络通信层 iolayer_create()
        nthreads: 指定网络线程的个数
        nclients: 推荐连接数
        realtime: 是否是即时性要求很高的场景,数据会立刻推送到网络层

    2) 设置网络通信层的方法(非线程安全)
        设置线程上下文: iolayer_set_iocontext(),
        设置网络层数据改造方法: iolayer_set_transform()

    3) 监听端口/开启服务端 iolayer_listen()
        此处存在一次性内存泄漏(272bytes)

    4) 连接远程服务/开启客户端 iolayer_connect()

    5) 设置回话的方法
        设置会话的超时时间 iolayer_set_timeout()
        设置会话的保活时间 iolayer_set_keepalive()
        设置会话的IO服务逻辑 iolayer_set_service()

    6) 发送数据 iolayer_send()
    7) 广播数据 iolayer_broadcast(), iolayer_broadcast2()
    8) 关闭会话 iolayer_shutdown(), iolayer_shutdowns()

    9) 停止服务 iolayer_stop()
        停止行为定义:
            1> 停止对外提供接入服务, 不再接受新的连接;
            2> 停止所有连接的接收服务, 不再回调ioservice_t::process()

    10) 销毁网络层 iolayer_destroy()

About

libevlite - A simple Network library that contains the Event library, Thread library, Communications library. Event library is LIBEVENT Lite Edition, so named for the LIBEVLITE

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 85.6%
  • C++ 12.8%
  • Makefile 1.6%