lrs_save_param_ex是lrs_save_param的扩展函数,包含了lrs_save_param的基本功能。其函数语法结构如下:
int lrs_save_param_ex ( char *s_desc, char *type, char *buff, int offset, int length, char *encoding, char *param ); |
s_desc表示指定的Socket名称;
type表示要存储的数据类型:
“user”:用户数据(脚本中自己定义的字符串)
“static”:静态数据(data.ws中录制的数据)
“received”:最后接收的缓冲区数据;
buff表示要保存哪个缓冲区的数据,这个参数与type有对应关系:
1、如果type是“user”、“static”两种,则需要指定具体的buffer名称;
2、如果是“received”则可以忽略这个参数;
offset表示在buffer中的偏移量;
length表示要从buffer中保存的字节数;
encoding表示的是解码方式:
对于“user”类型的buffer,需要指定其为ascii或者ebcdic中的一种,NULL值表示默认的格式为ascii。
对于“static”与“received”两种类型的buffer,则可以忽略这个参数,使用客户端的原始编码格式来进行解码;
param表示要保存的参数名称。
例3-11演示了这三种用法:
1、type=user
UserBuffer是脚本中自定义的字符串,存储的内容是"AAAAAThis is a userbuffer test!",执行代码:
lrs_save_param_ex("socket0","user",UserBuffer,5,26,NULL,"Param_User"); |
后将会把第5个字符后的26个字符即“This is a userbuffer test!”保存到Param_User中;
2、type=static
如果buf1在data.ws中的内容如下:
recv buf1 38 "Get your command:Hello client!,长度13." |
执行代码:
lrs_save_param_ex("socket0","static","buf1",0,30,NULL,"Param_Static"); |
后,将会把buf1中从0开始的30个字符即“Get your command:Hello client!”保存到参数 Param_Static中。
3、type=received
如果lrs_receive最后接收到的数据包内容为“Length=11Successful.AAAAA”,则执行代码:
lrs_save_param_ex("socket0","received",NULL,9,11,NULL,"Param_Received"); |
后,将会把从"socket0"收到的缓冲区数据中第9个字节后的11个字节即“Successful.”保存到参数Param_Received中。