使用机器人框架的rammbock库将TCP套接字从本地主机发送到本地主机时出现问题



我正在使用Robotframework,我需要向侦听端口80的程序发送JSON消息。由于我将此JSON从计算机发送到计算机上也安装的程序,因此我假设(以我很少的网络知识(发送和接收IP将是127.0.0.1。

在这个特定的代码段中,我将一个整数发送到一个模板,该模板使用此参数创建一个 JSON 结构并将其发送到本地主机端口 80,套接字必须是 TCP。

这是我的代码:

*** Test Cases ***
Set Simulator CDC
[Tags]    cdc
[Template]    Set Simulator CDC Template
#${cdc}
3120
*** Keywords ***
Set Simulator CDC Template
[Arguments]    ${cdc}    ${status}=0    ${connection}=${SIMULATOR_CONNECTION}
${cdc}=    Convert to Integer    ${cdc}
${json_cdc}=    Create Dictionary    command=cdc    cdc=${cdc}
${json_cdc}=    json.Dumps    ${json_cdc}
Log    ${json_cdc}
New Protocol    simpleRequest
Chars    *    ${json_cdc}
End Protocol
Start TCP server    127.0.0.1    12454    protocol=simpleRequest
Start TCP client    protocol=simpleRequest
Connect    127.0.0.1    80
New Message    ${json_cdc}    simpleRequest
u32    status
Client Sends message
${msg}=    Server Receives Message
Should be equal    ${msg.status.hex}    ${status}

我不确定您是否可以创建变量类型为"Chars"的协议,但是将 JSON 转换为字符串时,结果是相同的。日志文件仅在关键字"服务器接收消息"上给出错误,但我安装了 Wireshark,但我没有看到任何数据包进入 127.0.0.1,并且应该接收 JSON 的程序不会收到任何东西。

提前感谢;

曼努埃尔·冈萨雷斯·加西亚

似乎您是在端口 12454 而不是 80 上启动服务器,您应该更改此行:

Start TCP server    127.0.0.1    12454    protocol=simpleRequest

Start TCP server    127.0.0.1    80    protocol=simpleRequest

似乎您的代码缺少缩进,这似乎是rammbock所要求的

最新更新