/*lrs_save_param将静态或接收到的缓冲区保存到参数中*/
lrs_save_param (char *s_desc, char *buf_desc, char *param_name, int offset, int param_len);
参数:
s_desc:套接字标识符
buf_desc:缓冲区标识符
param_name:存入缓存数据的参数名称
offset:被保存到参数中的缓存区偏移量
param_len:要保存到参数中的字节数
/*lrs_save_param_ex将用户、静态或接收到的缓冲区保存到参数中*/
lrs_save_param_ex (char *s_desc, char *type, char *buff, int offset, int length, char *encoding, char *param);
参数:
s_desc:套接字标识符
type:要将灵气保存到参数中的缓冲区类型,有"user"(用户缓冲区)、"static"(data.ws中的静态缓冲区)和"received"(最后接收的缓冲区数据)三种
buff:和type的值有关,如果type的值是"user"则buff的值为指定的用户缓冲区,如果type的值是"static"则buff的值为指定的静态缓冲区,如果type的值是"received"则buff参数可以设为NULL
offset:缓存区偏移量
length:要保存到参数中的字节数
encoding:编码方式可以指定为"ascii"或"ebcdic",如果是用户缓冲区则NULL默认为"ascii",如果type为"static"或"received"则NULL默认为客户端编码方式
param:参数名称
/*lrs_save_searched_string将静态或接收到的缓冲区中搜索出现的字符串,将出现字符串的缓冲区部分保存到参数中*/
lrs_save_param (char *s_desc, char *buf_desc, char *param_name, char *left_boundary, char *right_boundary, int ordinal, int offset, int param_len);
参数:
s_desc:套接字标识符
buf_desc:缓冲区标识符
param_name:保存缓冲区数据的参数名称
left_boundary:标识要搜索缓冲区部分的左边界的字符串,格式为"LB=XXX"
right_boundary:标识要搜索缓冲区部分的右边界的字符串,格式为"RB=XXX"
ordinal:表示从第几次出现的左边界字符串开始搜索,如果指定了左边界则ordinal的值一定大于0,如果没有指定左边界则将ordinal设为-1
offset:要开始搜索的偏移量。如果指定了左边界则此偏移量相对于左边界计算,否则就从缓冲区的开始计算偏移量
param_len:要保存到参数中的缓冲区数据字节数。适用于没有指定右边界的情况,如果指定了右边界则设param_len为-1
例如:
lrs_save_searched_string("socket1", LRS_LAST_RECEIVED, "Parameter1", "LB/BIN=*", "RB/BIN=#", 2, 0, -1);
比较:
前两个函数都是根据偏移量和查找的数据的长度来定位所需要的数据,所以只适合于返回内容基本固定,只是所需要的数据动态变化,而且长度不变的情况。第三个函数是根据左右边界来定位要查找的数据,适用于数据长度变化的情况。lrs_save_searched_string与web协议中的web_reg_save_param函数作用基本一样,所不同的只是web_reg_save_param要放在需要关联的请求前,而lrs_save_searched_string是放在请求后。
转自:http://www.51testing.com/?uid-75241-action-viewspace-itemid-96549