繁体   English   中英

LoadRunner可以通过UDP数据包接收数据吗?

[英]Can LoadRunner Receive Data By UDP Packets?

我们想从udp套接字接收数据包,udp数据包具有可变的长度,在接收到它们之前我们不知道它们的实际长度(确切的一部分,长度写在第六个字节中)。

我们使用MarkerEnd尝试了功能lrs_set_receive_option,结果发现它对这个问题没有帮助。 我们要按数据包接收的原因是我们需要通过发送回用户定义的udp数据包来响应某些数据包。

有谁知道如何做到这一点?

UPDATE

  1. LR版本似乎是v10或v11。
  2. 我们需要通过立即发送回udp数据包来响应传入的udp数据包。
    udp数据包可能是这样的


    | 兽人代码| 包长度| 真实数据|


  3. 问题是我们不能让loadrunner为每个数据包返回数据,有时它会在缓冲区中返回许多数据包,有时会等待直到超时,即使套接字缓冲区中有传入数据包。 在C语言编程世界中,调用recvfrom(udp socket)时,每次(每次调用)仅返回一个udp数据包,这是我们真正想要的。

如果您需要原始套接字支持以在数据包级别进行拦截,那么您可能将不得不使用原始套接字支持跳到Visual Studio中的DLL虚拟用户。

关于您对UDP支持的问题:是的,Winsock用户支持UDP和TCP这两种核心传输类型。 TCP是面向连接的更常见的变体。 但是,分组检查是在OSI模型的第3层中进行的,用于载波协议IP。 ACK应该在您收到要在脚本中使用的数据流之前出现。 当您跳到TCP和UDP级别时,正在查看data.ws中的组合数据流。

现在,您可能会收到关于接收缓冲区大小不匹配的警告,这使您沿着与记录大小不匹配的路径前进。 有一个简单的方法可以解决此问题。 如果您使用发送缓冲区并使用lrs_set_send_buffer()函数构造它,则返回的任何内容都将被视为正确,而忽略先前记录的缓冲区大小,而不必等待匹配或超时再继续。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM