基本函数
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函数有效 | |
option为Mismatch时,值为 MISMATCH_SIZE默认, MISMATCH_CONTENT 当接收的内容不一致时,lrs_receive将会提示不匹配的错误信息 | option为EndMarke时,值 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内容。 |