|
模拟终端机登录服务器,每个终端机都有一个编号,要对这个编号和buffer参数化
脚本如下:
/*********************************************************************
* Created by Mercury Interactive Windows Sockets Recorder
*
* Created on: Tue Oct 06 10:17:21
*********************************************************************/
#include "lrs.h"
vuser_init()
{
lrs_startup(257);
return 0;
}
#include "lrs.h"
Action()
{
void mod_buffer(char* data, int psize)
{
unsigned char* ptr;
lrs_get_buffer_by_name("buf0", &data, &psize);
lrs_save_param_ex("socket0","static",data,0,psize,"null","ptr");
data[19] = checksum(ptr, 19);
}
unsigned char checksum(unsigned char* data, int size)
{
int i;
unsigned char val = 0;
for(i = 0; i < size; i++)
val += data;
return val;
}
lrs_create_socket("socket0", "UDP", "LocalHost=0", LrsLastArg);
lrs_send("socket0", "buf0", "TargetSocket=192.168.1.11:8000", LrsLastArg);
lrs_receive("socket0", "buf1", LrsLastArg);
lrs_close_socket("socket0");
return 0;
}
#include "lrs.h"
vuser_end()
{
lrs_cleanup();
return 0;
}
data.ws
;WSRData 2 1
send buf0 20
"\x00"
"~"
"\x00\x00\x00\x00\x84"
"0512010010" //终端机编号
"\x00\x00\xec"
recv buf1 20
"\x00"
"~"
"\x00\x00\x00\x00\x85"
"0512010010" //终端机编号
"\x00\x00\xed"
-1
参数化后 这个代码是有问题的,哪位大侠能帮我改改,
0512010010是终端机编号,所有主机的编号是一样长的, 服务器要验证buf中的第二十位,通过才能让终端机登录,
buf由前19位累加而成,---"\x00"
"~"
"\x00\x00\x00\x00\x85"
"0512010010"
"\x00\x00\
我用这个函数unsigned char checksum(unsigned char* data, int size)来得到第二十位,是不是有问题?? 如何对这些做参数化
还请哪位大侠多多指点 |
|