我正在使用 Robotframework,我需要将 JSON 消息发送到监听端口 80 的程序。由于我将此 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 的协议(protocol),但是当将 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 所要求的
关于python - 使用 Robotframework 的 rammbock 库将 TCP 套接字从本地主机发送到本地主机时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44950740/