jieyange 发表于 2011-10-17 14:46:56

loadrunner socket编程,关于并发的疑问

init:
#include "lrs.h"
int i=0;
#define MAX_NUM 100
#define SEND_TIME 100
int socketID;
static int index = 0;
vuser_init()
{
    lrs_startup(257);
        memset(socketID, 0, MAX_NUM*sizeof(int));
    return 0;
}

action:
#include "lrs.h"


char socketId;
char data = "";
int seeds = 0;
int ret = 0;
Action()
{
        data = 0x93;
        data = 0x35;
        lr_rendezvous("大量发送数据");
        lr_think_time(5);
        lr_start_transaction("senddata");
seeds = 10000*srand(time(NULL));
        memset(socketId, 0, 12 );
        sprintf(socketId, "socket%d", abs(seeds));
        ret = lrs_create_socket(socketId, "TCP", "LocalHost=0", "RemoteHost=192.168.1.230:4018", LrsLastArg);
        if( ret == 0 ) {
                for(i=0; i<1; i++ ) {
                lrs_set_send_buffer(socketId, data, strlen(data));
                        lr_output_message("socketid=%s, send data is %s, return value is: %d", socketId, data, ret);
                lrs_send(socketId, "data3", LrsLastArg);
                }
       lrs_close_socket(socketId);
        }       
    lr_end_transaction("senddata", LR_AUTO);
    return 0;
}

脚本大致就是这样的
遇到的问题是:压力测试,测的是网关那块的,因为要建立大量的不同用户进行数据并发,基于每个用户得建立一个socket连接,所以脚本就那样写了,可是问题是连接建立起来了,但10用户连上去就6-7个发送数据成功了,这是为什么啊?求高人指导,谢谢

jieyange 发表于 2011-10-17 14:48:16

在线等答案,已经1个星期了 还是没有解决,如果高人方便,可以加我QQ:12296618,不胜感激~

真实的追求者 发表于 2011-10-17 14:59:42

等待高人解决

8463212 发表于 2011-10-17 16:03:56

首先查看一下有多少用户登录成功啦   完事才能确定数据发送成功

jieyange 发表于 2011-10-18 15:31:46

回复 4# 8463212
连接都是成功的,但是服务端接收数据有时会接收不到,而且每次成功的比例不相同
页: [1]
查看完整版本: loadrunner socket编程,关于并发的疑问