编写步骤
1.建立与服务端的连接
rc=lrs_create_socket(“socket0”,”TCP”,”LocalHost=0”,”RemoteHost=127.0.0.1:8808”,LrsLastArg);
服务端地址和端口号
连接是否成功?
rc=0 表示建立连接成功
2.发送报文和接收报文
Lrs_send(“socket0”,”buf0”,LrsLastArg);
//由socket0 通道发送buf0里的数据
Lrs_receive(“socket0”,”buf1”,LrsLastArg);
//将socket通道返回的数据存放到buf1中
3.关闭连接
Lrs_close_socket(“socket0”);
//关闭socket0通道
完整脚本参考:
Action()
{
char*recvbuf;
intrecvlen=0;
intrc;
lr_start_transaction("Trans_socket");//事务
lrs_set_recv_timeout(60,0);//接收超时时间
lr_start_transaction("Conn_socket");
rc= lrs_create_socket("socket0", "TCP","LocalHost=0", "RemoteHost=127.0.0.1:8808",LrsLastArg); //RemoteHost处填入被测程序所在服务器IP
lr_output_message("rc=%d",rc);
if(rc != 0 ) {
lr_end_transaction("Conn_socket",LR_FAIL);
lr_end_transaction("Trans_socket", LR_FAIL);
return0;
}else{
lr_end_transaction("Conn_socket",LR_PASS); } //判断socket是否链接成功的事务
lr_rendezvous("集合点");
lrs_send("socket0","buf0",LrsLastArg);
lrs_receive("socket0","buf1",LrsLastArg);
lrs_get_last_received_buffer("socket0",&recvbuf,&recvlen);//获取返回内容和返回长度
//判断报文长度是否正确
if(recvlen==304)
lr_end_transaction("Trans_socket",LR_PASS);
else
lr_end_transaction("Trans_socket", LR_FAIL); //判断返回信息的长度是否正确,recvlen处填入预期返回信息的长度
lrs_close_socket("socket0");
return0;
}
关联函数介绍
lrs_save_searched_string();
在静态或接收到的缓冲区中搜索出现的字符串,将出现字符串的缓冲区部分保存到参数中
实例1:
原始数据为:"0|普通指令下达成功|10000031|"。
lrs_save_searched_string("socke0","buf1","wtbh","LB/BIN=|","RB/BIN=|",2,0,-1);
输出结果: "wtbh =10000013" 。在以左边界和右边界第2次出现的地方,获取左右边界里面的所有的值.
实例2:
原始数据为:"0|普通指令下达成功|10000031|"。
lrs_save_searched_string("socke0","buf1","wtbh","LB/BIN=|","RB/BIN=|",1,0,-1);
输出结果:"wtbh = 普通指令下达成功",在以左边界和右边界第1次出现的地方,获取左右边界里面的所有的值
实例3:
原始数据为:"0|普通指令下达成功|10000031|"
lrs_save_searched_string("socke0","buf1","wtbh","LB/BIN=|","RB/BIN=|",1,4,-1);
• 输出结果:"wtbh = 指令下达成功",在以左边界和右边界第1次出现的地方,获取左边界为起点的第4个字符后面的数据。
2.lrs_save_param();
将静态或接收到的缓冲区(或缓冲区部分)保存到参数中
实例:
lrs_save_param("socket0","buf1","wtbh",34, 8);
从数据包中第34个字符开始连续取8个字符。