winsock脚本常用函数

基本函数

lrs_create_socket("socket0", "TCP", "LocalHost=9001","Backlog=0", LrsLastArg);

lrs_close_socket("socket0");

lrs_accept_connection("socket0", "socket1");

从监听socket的连接队列中取出第一个连接,然后用相同的属性创建一个新的socket连接用来传输数据,原来的监听socket继续执行监听任务

lrs_send("socket1", "buf1", LrsLastArg);

int lrs_length_send(char *socket, char *buffer, int location_option,[char *locators],[char * additional_params],LrsLastArg);

lrs_receive("socket1", "buf0", LrsLastArg);

默认情况下将用接收到的数据与在data.ws中指定buffer的长度进行比较,如果二者不一致将会继续等待接收,直到超时为止

lrs_receive_ex

lrs_length_receive

lrs_get_socket_attrib("socket0", REMOTE_ADDRESS ); 

int socket1_handler = 0;

socket1_handler=lrs_get_socket_handler("socket1");

获得指定socket的关联句柄。句柄本质上是一个整型变量,也可以看成是一个指向socket的指针,可以通过句柄来操作socket

lrs_set_socket_handler("socket0",socket1_handler);

可以使socket与指定句柄进行关联

int lrs_set_receive_option(int option, int value,[char *terminator]);

设置lrs_receive函数接收数据时的选项,仅对lrs_receive函数有效

optionMismatch时,值为

MISMATCH_SIZE默认,

MISMATCH_CONTENT

当接收的内容不一致时,lrs_receive将会提示不匹配的错误信息

optionEndMarke时,值

EndMarker_None默认,一直到接收到缓冲区结束,如果接收长度与期望长度不一致将会继续等待接收,直到超时为止。

StringTerminator接收到指定的字符串结束

BinaryStringTerminator接收到指定的二进制字符串时结束

RecordingSize接收长度为录制时记录的长度,即对应data.ws中对应buffer记录的长度,如果缓冲区收到数据的长度大于录制脚本时记录的长度,则只接收录制时记录长度的数据,剩下的数据下次调用接收函数时才能接收。如果缓冲区接收到数据的长度小于录制脚本时记录的长度,则接收全部内容后将会继续等待,直到超时为止,超时后将会报不匹配的错误。如果再次等待期间接收到内容的长度与前面各次接收到内容长度之和仍小于总的期望长度,则仍会继续等待

2)关联函数

lrs_save_param("socket0",NULL,"Param_Return",9,11);

把socket0接收的数据保存到参数Param_Return中

int lrs_save_param_ex(char *s_desc, char *type, char *buff, int offset, int length, char *encoding ,char *param);

lrs_save_param_ex("socket0","user",ReturnBuffer,0,11,"ascii","Param_Return");//将ReturnBuffer中指定长度的数据保存到Param_Return中

type表示要存储的数据类型,有user,static,received三种,分别代表用户数据(脚本中自定义的字符串)、静态数据(data.ws中录制的数据)、最后接收的缓冲区数据。

int lrs_save_searched_string(char *s_desc, char * buf_desc, char *param_name, char * left_boundary, char * right_boundary, int ordinal, int offset, int param_len);

lrs_save_searched_string("socket0","buf1","Param_Received",NULL,"RB=,",-1,0,-1);

当data.ws中的buffer包含参数时,调用这三个函数无法读取参数的内容,只是把参数名称当成字符串处理

3)超时函数(所有超时函数都是全局函数)

lrs_set_connect_timeout

lrs_set_accept_timeout

lrs_set_send_timeout

lrs_set_recv_timeout

lrs_set_recv_timeout2

设置等待接收数据的超时时间

设置接收过程的超时时间

4)buffer函数

int lrs_get_buffer_by_name(char *buf_desc, char **data, int *size);

char *Buffer;

int BytesCount;

lrs_get_buffer_by_name("buf0",&Buffer,&BytesCount);

从脚本数据文件data.ws中获取指定buffer的内容及大小

lrs_get_last_received_buffer

lrs_get_last_received_buffer("socket0",&Data,&Size);获得指定socket上最后接收到的缓冲区数据

lrs_get_last_received_buffer_size

获得指定socket上最后接收到的缓冲区数据的大小(字节数)

char *lrs_get_received_buffer(char *s_desc,int offset, int length, char *encoding);

获得最后收到的buffer或者其中内容的一部分

lrs_get_static_buffer("socket0","buf1", 0,23, NULL);

获得data.ws中指定的buffer的内容

lrs_get_user_buffer("socket0");

lrs_get_static_buffer("socket0","buf1", 0,23, NULL);

ReturnBuffer=lrs_get_user_buffer("socket0");

指定socket的当前用户buffer中的内容

指定socket的当前用户buffer中的大小

在脚本中使用这两个函数前应该调用lrs_get_static_buffer或lrs_get_received_buffer等函数对用户缓冲区进行相关操作,否则将无法获得任何内容

lrs_get_received_buffer("socket0", 9,11, NULL);

ReturnBuffer=lrs_get_user_buffer("socket0");

lrs_get_user_buffer_size("socket0");

lrs_set_send_buffer("socket0",Buffer,35);

指定下一次调用lrs_send时将要发送的buffer,调用之后,lrs_send将不会发送其函数参数中指定的原始buffer内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值