Error: cannot connect to /root port; port port_name failed to activate (invalid address)

Error: cannot connect to /root port; port port_name failed to activate (invalid address)

我是使用 YARP 的初学者。我的目标是创建两个端口并连接它们(我使用的是 Ubuntu 虚拟机)。作者应该通过 argv 指针从命令行接收输入。

当我运行代码:

#include <yarp/os/all.h>
#include <iostream>

using namespace yarp::os;

int main(int argc, char *argv[]) {
int i = 0;

    // Set up YARP
    Network yarp;

    // Create port
    Port pout;
    bool ok  = pout.open("/examples/port/sender");
    if (!ok) {
        std::cerr << "Failed to open port" << std::endl;
        return 1;
    }

    // waiting for the receiver before transmitting
    yarp.waitConnection("/examples/port/sender", "/examples/port/receiver");

    // send data in a loop
    for(i = 0; i < argc; i++) {
        Bottle b;
        int x = atoi(argv[i]);
        b.addInt(x);
        std::cout << "Sending " << x << " message " << std::endl;
        pout.write(b);
    }

    // close port
    pout.close();

    return 0;
}

我遇到了以下错误:

[ERROR] |yarp.os.Network| Cannot connect to port /root
[ERROR] |yarp.os.Port| Port /examples/port/sender failed to activate (invalid address)
Failed to open port

你能告诉我我做错了什么吗?

两个错误都来自同一个问题:

[ERROR] |yarp.os.Network| Cannot connect to port /root

这意味着当您 运行 可执行文件时 /root 不可用。 /root 端口是 yarp server 使用的端口(除非您更改默认的“命名空间”)。

要修复此错误,您只需 运行 yarp server 另一个 shell。

[ERROR] |yarp.os.Port| Port /examples/port/sender failed to activate (invalid address)

无法连接 /root 端口,因此 YARP 试图在无效地址上打开端口。当 运行 可执行文件 yarp server 是 运行ning 时,它也应该被修复。

您可以在此处找到有关端口的非常基本的教程:http://www.yarp.it/git-master/note_ports.html