2013-12-10 286 views
0

我正在使用HP Loadrunner来测试套接字协议程序,现在我向服务器发送一些十六进制数字系统,但我不知道判断套接字是否连接,我将我的脚本粘贴到这里下面如何判断插座是否连接?

#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; 

}

回答

1

,但我也没办法判断插座是否连接

现在是时候聘请一个插座程序员谁一直在那里,做那。

从loadrunner的角度来看,您在代码中也有一些非常古怪的约定。您似乎将用户的思考时间视为延迟,同时等待代码中的服务器响应,这将指示使用该工具的概念性问题。您使用会合是其常见用途违反模型的关键指标,该工具正被用于打破在不同时间点抵达和离开的最终用户的混乱性质。

+0

你能告诉我脚本是如何工作的?我只想k现在如果套接字已连接,非常感谢 – voisvous

+0

您想知道套接字对的末端是否已连接,或者对等体是否仍可到达? –

+0

是的,你能帮我一下吗?或者你可以举个例子吗?谢谢 – voisvous

0

你可以做到以下几点:

  1. 启用继续错误
  2. 检查插座属性
  3. 禁止继续在错误

例如

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); 
相关问题