发布于 2017-06-04 23:54:13 | 68 次阅读 | 评论: 0 | 来源: 网友投递
tcpdaemon TCP连接管理
tcpdaemon是类似于xinetd的TCP守护服务,它封装提供了各种常见TCP连接管理模型(即时派生、预派生进程池等),使用者只需编写TCP通讯数据交换协议和应用处理代码,就能快速完整构造自己的TCP应用服务器。
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://git.oschina.net/calvinwilliams/tcpdaemon