Chrome Native Client(pnacl工具链)是否支持udp广播?

时间:2017-02-25 14:35:40

标签: sockets google-chrome udp broadcast google-nativeclient

我尝试在Chrome扩展程序中实施Nacl模块,尝试使用GigE Vision控制服务(gvcp)发现GigE相机。所以我必须在端口3956上发送UDP广播消息。为此,我使用 sendmsg()功能。

在我的 Nacl 模块中(使用 pnacl 工具链编译),我使用 nacl_io ,我可以成功发送UDP消息使用经典的主机地址(比如说192.168.1.12)。我可以使用Wireshark看到发出的消息。

但是当我切换到INADDR_BROADCAST地址时,我可以看到我对 sendmsg()函数的调用是成功的(我发送了4个字节,这个调用的结果很好等于4)。 。 但网络上并没有真正发生 。我看不到使用Wireshark发送的任何广播消息。

使用Nacl日志记录,我在日志中看不到任何Nacl错误。

我使用pepper_56。

请注意:

  • 我使用的是Ubuntu 16.10发行版
  • chrome版本为56.0.2924.87(64位)
  • chrome使用--allow-nacl-socket-api = localhost
  • 启动
  • 使用了pepper c ++ API(好吧,模块是用C ++编写的,但是使用了nacl_io调用:我不直接依赖于pp :: UDPSocket ...)
  • nacl_io函数调用在专用工作线程中完成(如果不是这种情况,则在任何先前的socket(),bind()调用上都会发生EPERM错误,并且具有主机地址的示例将失败还)
  • 我不能使用另一个调用而不是sendmsg()。事实上,我在这里描述的是该问题的小型重现器的行为,但最后,我需要依赖使用底层sendmsg()函数的glib。所以,请不要让我检查send()或write()或...... :-)我需要坚持使用sendmsg()函数。
  • 用于加载包含对Nacl模块的引用的html页面的URL为http://localhost:5103。即在开发模式下,我不使用Chrome扩展程序......
  • ...但我已经在Chrome扩展程序中检查了(仅限开发者模式)并且结果相同
  • 开发Chrome应用程序(因此,没有Chrome应用程序清单,因此无权设置等...)

pepper_56是否支持UDP广播?知道为什么它不起作用吗?

0 个答案:

没有答案