Poco库在FreeBSD下发布“不支持地址族”

时间:2017-04-15 03:38:17

标签: c++ freebsd poco-libraries

我们正在探索poco(pocoproject.org)库的HTTP服务器示例。在Windows上它运行良好但在FreeBSD问题上“不支持地址族”。在FreeBSD上,我们使用通过pkg poco-1.7.8

安装的动态链接

此样本的来源: https://github.com/toggl/toggldesktop/blob/master/third_party/poco/Net/samples/HTTPFormServer/src/HTTPFormServer.cpp

有任何建议我们如何解决它?

-----更新:

原始样本使用ipv4。

当我按如下方式创建ipv6套接字时出现同样的问题:

        Poco::Net::SocketAddress addr("[fe80::a00:27ff:feb7:6b1a]:9980");

        if (addr.family() == static_cast<Poco::Net::IPAddress::Family>(Poco::Net::Impl::IPAddressImpl::IPv6)) {
            std::cout << "Addr: ipv6 " << std::endl;
        }
        else if (addr.family() == static_cast<Poco::Net::IPAddress::Family>(Poco::Net::Impl::IPAddressImpl::IPv4)) {
            std::cout << "Addr: ipv4 " << std::endl;
        }
        else {
            std::cout << "Addr: something else (err)." << std::endl;
        }

        // set-up a server socket
        ServerSocket svs(addr);

输出

    Addr: ipv6
    Net Exception: Address family not supported

1 个答案:

答案 0 :(得分:0)

我对poco一无所知,但错误消息暗示这是IPv6问题。

可能的解决方案:

  • 在FreeBSD上禁用IPv6
  • 让您的程序识别IPv6

另请参阅此相关question