Python 使用Robotframework的rammbock库将TCP套接字从本地主机发送到本地主机时出现问题
我使用的是Robotframework,我需要向监听端口80的程序发送一条JSON消息。由于我正在将这个JSON从我的计算机发送到一个也安装在我的计算机上的程序,我假设(根据我的一点网络知识)发送和接收IP为127.0.0.1 在这段特定的代码中,我向模板发送一个整数,该模板使用此参数创建JSON结构,并将其发送到localhost端口80,套接字需要是TCP 这是我的代码:Python 使用Robotframework的rammbock库将TCP套接字从本地主机发送到本地主机时出现问题,python,robotframework,Python,Robotframework,我使用的是Robotframework,我需要向监听端口80的程序发送一条JSON消息。由于我正在将这个JSON从我的计算机发送到一个也安装在我的计算机上的程序,我假设(根据我的一点网络知识)发送和接收IP为127.0.0.1 在这段特定的代码中,我向模板发送一个整数,该模板使用此参数创建JSON结构,并将其发送到localhost端口80,套接字需要是TCP 这是我的代码: *** Test Cases *** Set Simulator CDC [Tags] c
*** 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的协议,但将JSON转换为字符串时,结果是相同的。日志文件只给出了关键字“Server Receives Message”的错误,但我安装了Wireshark,没有看到任何数据包指向127.0.0.1,应该接收JSON的程序不会收到任何东西
提前感谢
曼努埃尔·冈萨雷斯·加西亚(Manuel González García)似乎您是在端口12454而不是80上启动服务器,您应该更改此行:
Start TCP server 127.0.0.1 12454 protocol=simpleRequest
到
您的代码似乎也缺少缩进,这似乎是rammbock所要求的。您好,谢谢您的回复。关于标识,我粘贴了没有标识的代码,现在我编辑了消息。关于端口,我已经尝试使用端口80,但它不起作用。但我认为,如果我在本地主机上发送消息,那么从接收消息的同一端口发送该消息是不符合逻辑的。
Start TCP server 127.0.0.1 80 protocol=simpleRequest