swallow1981328 发表于 2005-11-22 09:41:21

录制socket协议的VU脚本,回放出错,能否解决

请问:
1.rational有没有tcp/ip的协议?
2.我录制的系统是用socket和tcp/ip协议的,C/S并为三层结构,但rational中没有tcp/ip协议,只能用socket了,脚本可以顺利录制,但对于脚本的意义,本人实在无能为力,不会修改。回放时,其中有三个command运行失败,这三个命令形式如下:(列出两个示意一下)
sock_recv ["4006"] "$"; /* 24 bytes */
sock_disconnect(TESTTOOL_1);
set Server_connection = TESTTOOL;
set Think_avg = 31;
sock_send
    "`03da0000280000000300000000000000080000000c000000670065007400750070006400"
    "610074006500760065007200`";


sock_recv ["4014"] "$"; /* 32 bytes */
sock_disconnect(TESTTOOL_2);
TESTTOOL_3 = sock_connect("4015", "TESTTOOL:211");
set Server_connection = TESTTOOL_3;
set Think_avg = 0;
sock_send
    "`04da00003400000008000000160000004700720070004100700070005300650072007600"
    "650072002e00470072007000530065007200760065007200`";

能通过的command示例如下:
sock_nrecv ["4004"] 16;
sock_send
    "`03da0000240000000300000000000000080000000a000000730065007200760065007200"
    "7300740061007400`";

我发现通不过的都是sock_recv 标志且有"$"符号,通过的则是sock_nrecv标志,请问有没有解决办法啊?

海龙 发表于 2005-11-22 09:52:53

1、socket使用的就是tcpip协议
2、将sock_recv ["4014"] "$"; /* 32 bytes */
      改成sock_nrecv ["4014"] 32;
      其他的以此类推

swallow1981328 发表于 2005-11-22 10:01:57

谢谢,非常感谢!!!!

yuanlj 发表于 2005-11-22 16:35:26

我知道”$"表示接收完所有数据,而32表示接收32byte,我想问一下楼主,这里应该说实际表示的意义都是一样的,为什么”$"符号会导致错误呢?

海龙 发表于 2005-11-22 18:47:18

This example reads until the end of the connection. It fails only if Timeout_val (subject to scaling) milliseconds expires before reaching the end of the connection:

sock_recv ["cmd003r"]"$";

yuanlj 发表于 2005-12-2 15:55:11

恍然大悟,多谢楼主!
页: [1]
查看完整版本: 录制socket协议的VU脚本,回放出错,能否解决