Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用Robotframework的rammbock库将TCP套接字从本地主机发送到本地主机时出现问题_Python_Robotframework - Fatal编程技术网

Python 使用Robotframework的rammbock库将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

我使用的是Robotframework,我需要向监听端口80的程序发送一条JSON消息。由于我正在将这个JSON从我的计算机发送到一个也安装在我的计算机上的程序,我假设(根据我的一点网络知识)发送和接收IP为127.0.0.1

在这段特定的代码中,我向模板发送一个整数,该模板使用此参数创建JSON结构,并将其发送到localhost端口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的协议,但将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