yefeng312 发表于 2009-7-20 11:49:36

录制Winsock遇到的问题

大家好!
在录制一款类RTX局域网聊天工具时,模拟大量用户在线情况
但是每个人登录后有些关键的lr_receive()方法接受到数据大小都不一样。
例如
lrs_receive("socket0", "buf14", LrsLastArg);
recvbuf14 24
        "226 Transfer complete.\r\n"

录制时候 接受到的字节是24,但是模拟其他人的时候 这里接受的字节可能就会变为其它的了
这里的不一致有什么影响吗?
有什么办法可以解决吗?

houzeal 发表于 2009-7-20 12:15:12

LR会将运行脚本时实际接收到数据包的大小与录制时数据包的大小进行比较,如果不一样,则会报错数据包长度不匹配~~~~

yefeng312 发表于 2009-7-20 12:27:22

原帖由 houzeal 于 2009-7-20 12:15 发表 http://bbs.51testing.com/images/common/back.gif
LR会将运行脚本时实际接收到数据包的大小与录制时数据包的大小进行比较,如果不一样,则会报错数据包长度不匹配~~~~


那就说明有影响了。

如何才能解决这个问题 呢?
有没有这种方法:不去考虑接受的长度和内容,直接把所有的数据都接受下来?

lsharp 发表于 2009-7-20 13:18:45

改一下接收SOCKET时的设置

试试lrs_set_receive_option(EndMarker,RecordingSize);
把这行代码放在create socket的前面。

yefeng312 发表于 2009-7-20 13:58:19

原帖由 lsharp 于 2009-7-20 13:18 发表 http://bbs.51testing.com/images/common/back.gif
试试lrs_set_receive_option(EndMarker,RecordingSize);
把这行代码放在create socket的前面。

这样设置以后只能 按录制的大小来接受数据。
实际的数据 字节太小或者太大怎么办呢 ?
还有一个设置是设置 结束字符 来接受,这些好像都不能满足需要。
真的没有其他的方法了吗

lsharp 发表于 2009-7-20 14:12:33

这样搞吧

action.c :length3=lrs_length_receive("socket0","buf3",0,LrsLastArg);
data.ws : recvbuf3 length3

yefeng312 发表于 2009-7-20 14:52:56

原帖由 lsharp 于 2009-7-20 14:12 发表 http://bbs.51testing.com/images/common/back.gif
action.c :length3=lrs_length_receive("socket0","buf3",0,LrsLastArg);
data.ws : recvbuf3 length3

貌似这两个的先后顺序不对
实际情况是先receive了,然后在才能调用lrs_length_receive这个方法的

yefeng312 发表于 2009-7-20 15:07:00

搞C/S系统的人这么少?
好像没有啥人呢
页: [1]
查看完整版本: 录制Winsock遇到的问题