hahahahahahaha 发表于 2012-2-18 15:47:15

loadrunner winSocket协议 脚本编写问题

本帖最后由 愚人 于 2012-2-18 19:42 编辑

现在要自己编写一个socket协议脚本(不是录制哦,那个坑爹的项目不能录制),下面是我写的一段服务器端的代码。请大家给点建议。我该怎么接收到服务器端响应的呢?请给出具体的demo,小弟在这谢过了。。
   
//服务器端
public class SocketServer {

      public static void main(String[] args) {
                new SocketServer().SocketServerTest();
      }

      // 平常的传输--服务器端
      public void SocketServerTest() {

                try {
                        ServerSocket ss = new ServerSocket(1234); // 1234是端口
                        System.out.println("我是服务器1234,我启动了");
                        Socket s = ss.accept(); // 等待客户端来链接,返回一个socknt
                              // 读取s中传过来的数据
                              InputStreamReader isr = new InputStreamReader(s
                                                .getInputStream());
                              BufferedReader br = new BufferedReader(isr);
                              String b = br.readLine(); // 读取
                              System.out.println("客户端说: " + b);
                                    PrintWriter pw = new PrintWriter(s.getOutputStream(), true);// 链接成功的话。可以给服务器发送数据
                                 // .我们通过pw发数据。true即使刷新
                                 pw.println("q1256");// 服务器响应的数据
                                 System.out.println("响应下。。。");
                              
                        } catch (Exception e) {
                        e.printStackTrace();
                }
      }
}
我在loadrunner的执行日志中。该怎么得到服务器相应的值(也就是字符串 q1256)呢?

hahahahahahaha 发表于 2012-2-18 16:21:54

这是我编写的socket协议脚本
Action()
{

char* pcTest3;
lrs_create_socket("strSock","TCP", "RemoteHost=127.0.0.1:1234", LrsLastArg);    // 建立socket连?
lr_start_transaction("socket");// 设置事物
lrs_send( "strSock", "buf0", LrsLastArg );    // 发送报文 buf0不发送,发送上面设定的strSend
   lrs_set_recv_timeout( 6, 0 );    // 设置接收返回报文的超时时间
   pcTest3=lrs_get_received_buffer ("strSock", 0,-1, "ascii");
   lr_output_message("recv=[%s]\n",pcTest3);//打印 。这个怎么得不到响应的值呀。怎么是空呀?求指教呀
lr_end_transaction("socket",LR_AUTO);
lrs_close_socket("strSock");   // 关闭socket连接
    return 0;
}

---------------------------------------------------
这个是 data.ws

;WSRData 2 1

send buf0 8
   "10000000"

-1
-----------------------------------------------------

这是我的脚本。为什么相应的为空呢。大家看看有什么问题。。感谢万分呀

jh_soft 发表于 2012-2-20 17:43:15

顶,学习

hahahahahahaha 发表于 2012-2-21 09:27:17

求解释呀。。大侠?

s3024159 发表于 2012-2-22 14:53:49

socket协议的函数都有返回码,
使用lrs_get_received_buffer函数的返回值只是一个数值,让你判断是否接收成功,错误的类型。
使用lrs_send函数要有相应的lrs_receive函数,这个才是接收服务器的内容,保存到lr中的系统内存中。
之后用lrs_get_last_received_buffer函数 提取buffer中的首地址和大小。
之后就读吧

491623644 发表于 2012-5-31 13:55:36

请问在哪里可以学习到socket协议的一些基本的知识?我是新手
页: [1]
查看完整版本: loadrunner winSocket协议 脚本编写问题