1.2.1 2017-06-04 calvin
* 修正了服务模型IOMP的多进程没有轮流切换主侦听问题
1.2.0 2017-06-03 calvin
* 重整了代码,有少许接口与老版本不兼容
* 新增服务模型IOMP,支持Linux环境
0.快速开始
老师交给小明一个开发任务,实现一个TCP网络迭代并发服务器,用于回射任何接收到的通讯数据。小明很懒,他在开源中国项目库里搜到了开源库tcpdaemon来帮助他快速完成任务。首先他安装好tcpdaemon,然后写了一个C程序文件
test_callback_echo.c
$ vi test_callback_echo.c
#include "tcpdaemon.h"
_WINDLL_FUNC int tcpmain( struct TcpdaemonServerEnvirment *p_env , int sock , void *p_addr )
{
char buffer[ 4096 ] ;
long len ;
len = recv( sock , buffer , sizeof(buffer) , 0 ) ;
if( len <= 0 )
return len;
len = send( sock , buffer , len , 0 ) ;
if( len < 0 )
return len;
return 0;
}
他编译链接成动态库test_callback_echo.so,最后用tcpdaemon直接挂接执行
$ tcpdaemon -m IF -l 0:9527 -s test_callback_echo.so -c 10 --tcp-nodelay --logfile $HOME/log/test_callback_echo.log
OK,总共花了五分钟,圆满完成老师作业。老师说这个太简单了,小明你给我改成像Apache经典的Leader-Follow服务端模型,小明说没问题,他把启动命令参数-m IF
改成了-m LF
,再次执行,完成老师要求,总共花了五秒钟。老师问你怎么这么快就改好了,小明说全靠开源项目tcpdaemon帮了大忙啊 ^_^
1.概述
tcpdaemon是一个TCP通讯服务端平台/库,它封装了众多常见服务端进程/线程管理和TCP连接管理模型(Forking、Leader-Follow、IO-Multiplex、WindowsThreads Leader-Follow),使用者只需加入TCP通讯数据收发和应用逻辑代码就能快速构建出完整的TCP应用服务器。
...
文章转载自 开源中国社区 [http://www.oschina.net]
时间: 2024-09-11 09:22:46