ACE:multicast-join返回成功(0),但没有可用的接口

时间:2017-09-28 13:24:58

标签: c++ linux windows multicast ace

挑战在于确定是否需要"界面使用"对于多播套接字不可用。 目前创建了ACE_SOCK_Dgram_Mcast,并使用显式接口选择和reuse_addr == 1调用join()(参见注释1)。

我原以为join()返回-1(错误)或其他一些错误。但它返回0,即使所有以太网适配器都被拔掉(并且loopback-adapter被停用)。 我有想法在执行join()之前使用类似参数调用open(),但这也完全正常(returnvalue 0)。

任何人都能解释一下吗?我期待加入/打开返回失败,以防万才的所需接口不可用。作为一个不插电的界面,对我来说意味着“不可用”#34;。 我错过了什么?

顺便说一下:" ipconfig / all"在所有设备的Windows终端列表中"已拔出或不可用",因此未列出所需的接口(由IP地址指定)。

设置: 带有ACE 6.3.1库的C ++; Win7的;构建为x86_32二进制文件 - 但稍后将与Ubuntu 14.04(Linux)一起部署

注1:

  

int join(const ACE_INET_Addr& mcast_addr,
  int reuse_addr = 1,//(见上文)
  const ACE_TCHAR * net_if = 0);

0 个答案:

没有答案