项目作者: bingoex

项目描述 :
一个简单的纯C异步框架/a Asynchronous Network framework
高级语言: C
项目地址: git://github.com/bingoex/AsynNetFramework.git
创建时间: 2016-08-30T15:36:41Z
项目社区:https://github.com/bingoex/AsynNetFramework

开源协议:

下载


AsynNetFramework

Introduction

一个简单的纯C异步框架。

  • 适合简单的echo类型服务器(一问一答式)。
  • 服务器监听端口,框架负责收发包,开发人员只需编写相应的回调函数(收请求、处理请求等)即可。
  • 支持tcp、udp
  • 支持select、epoll

回调函数:

  1. /* 从包头获取预期长度并回填piPkgLen */
  2. int (*HandlePkgHead) (SocketClientDef *pstScd, void *pUserInfo, void *pPkg, int iBytesRecved, int *piPkgLen);
  3. /* 收包成功后回调(tcp) */
  4. int (*HandlePkg) (SocketClientDef *pstScd, void *pUserInfo, void *pPkg, int iPkgLen);
  5. /* 作为服务器,有新客户端连接时回调 */
  6. int (*HandleAccept) (SocketClientDef *pstScd, void *pUserInfo);
  7. /* 作为客户端,连接成功时回调(主要做组包操作和SendTcpPkg)*/
  8. int (*HandleConnect) (SocketClientDef *pstScd, void *pUserInfo);
  9. /* 循环操作回调(千万不要做耗时的事情,会阻塞进程)*/
  10. int (*HandleLoop) ();
  11. /* 收包成功后回调(udp) */
  12. int (*HandleUdpPkg) (SocketClientDef *pstScd, void *pUserInfo, int iUdpName, void *pPkg, int iPkgLen);
  13. /* 关闭连接时回调 */
  14. int (*HandleClose) (SocketClientDef *pstScd, void *pUserInfo);

example

详情请看:
./example/test_client.c and server.c