簡體   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