2017-04-15 42 views
0

我們正在探索poco(pocoproject.org)庫的HTTP服務器示例。在Windows上它運行良好,但是在FreeBSD的問題上「Address family not supported」。在FreeBSD上,我們使用安裝的動態鏈接通過PKG POCO-1.​​7.8Poco庫問題FreeBSD下的「地址族不支持」

來源這個樣品: 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 

回答

0

我不知道POCO什麼,但錯誤信息提示,這是一個IPv6的問題。

可能的解決方案:

  • 禁用IPv6在FreeBSD
  • 讓你的程序支持IPv6

另見本相關question

+0

IPv6的verison有同樣的問題 – Victor