我正在使用HP Loadrunner来测试套接字协议程序,现在我将一些十六进制数字系统发送到服务器,但我不知道判断套接字是否已连接,我将我的脚本粘贴到此处< / p>
#define _EOF '#'
#include "lrs.h"
Action()
{
char *recvbuf;
int recvlen=0;
int rc;
lr_think_time(1000);
lr_start_transaction("Trans_socket");
lrs_set_recv_timeout (1,500);
lr_start_transaction("Conn_socket");
rc = lrs_create_socket("socket0", "TCP", "LocalHost=0", "RemoteHost=192.168.10.110:10001", LrsLastArg);
lr_output_message("rc=%d",rc);
if (rc != 0 )
{
lr_end_transaction("Conn_socket", LR_FAIL);
lr_end_transaction("Trans_socket", LR_FAIL);
return 0;
}
lr_end_transaction("Conn_socket", LR_PASS);
lr_rendezvous("trace");
lrs_send("socket0","buf0", LrsLastArg);
lrs_receive ("socket0","buf1",LrsLastArg);
lrs_get_last_received_buffer ("socket0",&recvbuf,&recvlen);
if(recvlen==58)
lr_end_transaction("Trans_socket", LR_PASS);
else
lr_end_transaction ("Trans_socket", LR_FAIL);
lrs_send("socket0", "buf2", LrsLastArg);
lrs_receive("socket0", "buf3", LrsLastArg);
lrs_send("socket0", "buf4", LrsLastArg);
lrs_receive("socket0", "buf5", LrsLastArg);
lr_think_time(100);
lrs_send("socket0", "buf6", LrsLastArg);
lr_think_time(1000);
lrs_receive("socket0", "buf7", LrsLastArg);
lr_think_time(1000);
lrs_send("socket0", "buf8", LrsLastArg);
lrs_receive("socket0", "buf9", LrsLastArg);
lrs_close_socket("socket0");
return 0;
}
答案 0 :(得分:1)
,但我不知道判断套接字是否已连接
是时候聘请一位曾经去过那里的插座程序员。
从loadrunner角度来看,您的代码中也有一些非常奇怪的约定。在等待代码中的服务器响应时,您似乎将用户思考时间视为延迟,这表明使用该工具时存在概念问题。您使用集合点是其常见用途中模型违规的关键指标,其中该工具用于打破最终用户在不同时间点到达和离开的混乱性质。
答案 1 :(得分:0)
您可以执行以下操作:
例如
char* peer;
lr_continue_on_error(1);
lrs_create_socket("socket1", "TCP", "LocalHost=0", "RemoteHost=fakehost", LrsLastArg);
peer =lrs_get_socket_attrib("socket1", REMOTE_ADDRESS );
if (peer == NULL){
lr_message("Not connected");
}else{
lr_message("Connected");
}
lr_continue_on_error(0);