• (转)Libevent(3)— 基础库


    转自:http://name5566.com/4202.html

    参考文献列表:
    http://www.wangafu.net/~nickm/libevent-book/

    此文编写的时候,使用到的 Libevent 为 2.0.21

    常用基本数据类型

    1. evutil_socket_t 用于保存 socket
    2. ev_uint64_t 取值范围 [0, EV_UINT64_MAX]
    3. ev_int64_t 取值范围 [EV_INT64_MIN, EV_INT64_MAX]
    4. ev_uint32_t 取值范围 [0, EV_UINT32_MAX]
    5. ev_int32_t 取值范围 [EV_INT32_MIN, EV_INT32_MAX]
    6. ev_uint16_t 取值范围 [0, EV_UINT16_MAX]
    7. ev_int16_t 取值范围 [EV_INT16_MIN, EV_INT16_MAX]
    8. ev_uint8_t 取值范围 [0, EV_UINT8_MAX]
    9. ev_int8_t 取值范围 [EV_INT8_MIN, EV_INT8_MAX]
    10. ev_ssize_type(signed size_t)取值范围 [EV_SSIZE_MIN, EV_SSIZE_MAX]

    时间相关

    1. // 用于加或者减前两个参数,结果被保存在第三个参数中
    2. #define evutil_timeradd(tvp, uvp, vvp) /* ... */
    3. #define evutil_timersub(tvp, uvp, vvp) /* ... */
    4.  
    5. // 清除 timeval 将其值设置为 0
    6. #define evutil_timerclear(tvp) /* ... */
    7. // 判断 timeval 是否为 0,如果是 0 返回 false,否则返回 true
    8. #define evutil_timerisset(tvp) /* ... */
    9.  
    10. // 比较两个 timeval
    11. // 使用的时候这样用:
    12. // evutil_timercmp(t1, t2, <=) 含义为判断 t1 <= t2 是否成立
    13. // cmp 为所有的 C 关系操作符
    14. #define evutil_timercmp(tvp, uvp, cmp)
    15.  
    16. // 获取当前时间并保存到 tv
    17. // tz 目前无用
    18. int evutil_gettimeofday(struct timeval *tv, struct timezone *tz);

    Socket API

    1. // 用于关闭一个 socket
    2. int evutil_closesocket(evutil_socket_t s);
    3. #define EVUTIL_CLOSESOCKET(s) evutil_closesocket(s)
    4.  
    5. // 返回当前线程的最后一次 socket 操作的错误码
    6. #define EVUTIL_SOCKET_ERROR()
    7. // 改变当前 socket 的错误码
    8. #define EVUTIL_SET_SOCKET_ERROR(errcode)
    9. // 返回特定的 sock 的错误码
    10. #define evutil_socket_geterror(sock)
    11. // 通过 socket 错误码获取到一个字符串描述
    12. #define evutil_socket_error_to_string(errcode)
    13.  
    14. // 设置 sock 为非阻塞的 socket
    15. int evutil_make_socket_nonblocking(evutil_socket_t sock);
    16.  
    17. // 设置 sock 的地址可重用
    18. int evutil_make_listen_socket_reuseable(evutil_socket_t sock);

    字符串相关

    1. // 它们对应于标准的 snprintf 和 vsnprintf
    2. int evutil_snprintf(char *buf, size_t buflen, const char *format, ...);
    3. int evutil_vsnprintf(char *buf, size_t buflen, const char *format, va_list ap);

    安全的随机数生成

      1. // 此函数将使用随机的数据填充 n 个字节的 buf
      2. void evutil_secure_rng_get_bytes(void *buf, size_t n);
  • 相关阅读:
    【转】查看java类是从哪个包加载
    把本地代码同步到github
    【转】Sublime Text3注册码(可用)
    python网络编程学习笔记(二)
    python网络编程学习笔记(一)
    Linux学习笔记 第五章Linux首次登陆与在线求助 man page
    linux c 笔记 网络编程(三)..套接字数据传输
    linux c 笔记 网络编程(二)
    linux c 笔记 网络编程(一)
    互斥锁 笔记
  • 原文地址:https://www.cnblogs.com/buptlyn/p/4253493.html
Copyright © 2020-2023  润新知