通用服务器桩-Receiver使用说明文档
作者:网络转载 发布时间:[ 2012/11/7 10:18:32 ] 推荐标签:
4.3 so模式
如果以上两种方式不能满足用户需求,用户可以继承receiver提供的plugin基类,实现自己的包处理函数
class IPlugin
{
public:
IPlugin( const std::string& name) ;
virtual ~IPlugin();
virtual const std::string& GetPluginName();
virtual void Process( void *);
protected:
std::string m_strPluginName;
};
Receiver使用了Epool和线程池模型,当有socket可读,会立刻回调用户的Process( void *)函数,传给用户socket句柄,用户可自行执行收包及处理函数
一个简单示例如下:
testplugin.h:
#include “plugin.h”
class TestPlugin: public IPlugin{
public:
TestPlugin():IPlugin(“testplugin”){
printf(“create TestPlugin ”);
}
void Process( void *);
};
testplugin.cpp:
#include “testplugin.h”
#include “mysocket.h”
#include
using namespace std;
extern “C”
TestPlugin* create_testplugin()
{
return new TestPlugin();
}
void TestPlugin::Process(void * p){
int sock = (int)p;
cout << ” handle epool event , socket= ” << sock << endl;
SocketLayer::close_delepoll(sock);
}
5 工具参数
receiver三种模式: xml模式(A),逻辑xml模式(B),so模式(C),参数含义如下:
-r 指定接收的结构体描述,A模式使用
-s 指定发送的普通结构体描述,A模式使用
-m 指定发送的mcpack1结构体描述,A模式使用
-x 指定发送的mcpack2结构体描述,A模式使用
-S 指定延迟发送时间,A、B模式使用
-n 指定响应次数(-1 表示不退出),A、B模式使用
-l 指定处理请求后是否断连接,A、B模式使用
-u 指定是否为udp,A、B模式使用
-b 指定一个逻辑xml,B模式使用
-d 指定自定义so路径,C模式使用
-a 指定自定义so名称,C模式使用
-t 指定线程数,A、B、C模式使用
-p 指定端口号,A、B、C模式使用
6 附录
6.1 关键字列表
#randuint(a,b):返回从a到b之间的一个随机数
#timenow():返回当前时间的秒数
#md5(16,str):根据str生成md5
#fromto(a,b):返回[a,b]的整数,随运行次数递增
#randin(a,b,c,d):在abcd中随机抽一个数
flowlen():计算后续部分的长度
6.2 内置类型
int8_t uint8_t
int16_t uint16_t
int32_t uint32_t
int64_t uint64_t
int
time_t
long
short
char
相关推荐
更新发布
常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11系统性能测试及调优前期准备
2021/4/15 14:41:29国内比较好用的5款测试管理工具
2021/3/25 17:23:31