【问题标题】:Running socket API for native client为本机客户端运行套接字 API
【发布时间】:2014-09-15 13:04:37
【问题描述】:

我正在尝试运行 goggle 本机客户端提供的套接字 api 示例。(路径:nacl_sdk\pepper_35\examples\api\socket)

我可以使用 make 命令构建和运行这个示例,它也可以在 chrome 浏览器上正确显示。但是当我尝试连接到某个 TCP 端口时,无论 IP 和 PORT 是什么,它总是会失败。尽管我已经创建了一个应用程序来监听我机器上的特定端口。

以下是错误信息:

tcp
正在解决...
解析失败。

我什至无法通过仅提供端口号来创建本地服务器。它说:

在端口启动服务器:8080
服务器:绑定失败:-7

以下更改已经完成:

  1. 在 chrome 上启用 nacl
  2. 在 chrome 上启用 nacl socket api

已尝试以下方法:

  1. 使用命令行参数启动 chrome "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --allow-nacl-socket-api="http://localhost"

  2. "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --allow-nacl-socket-api=IP_ADDRESS_OF_MY_SYSTEM

谁能告诉我这里缺少什么?

【问题讨论】:

    标签: sockets tcp google-nativeclient ppapi


    【解决方案1】:

    正确的说法是:

    --allow-nacl-socket-api=localhost
    

    参数必须只是原点,并且它必须是试图访问套接字的原点。您的 IP 地址不起作用,因为您正在加载的页面没有指定 IP 地址。参数必须完全匹配,否则所有套接字调用都会失败。

    【讨论】:

      【解决方案2】:

      我设法使用 Google Chrome 54.0.2840.59(64 位)在pepper_49 上运行。

      第一步是确保您在 chrome://flags 中nothing启用了与 NACL 相关的功能。我想我打开了#allow-nacl-socket-api,即使你传递了正确的命令行参数,它也不起作用。 将它们恢复为默认值!

      其次,确保您没有运行任何其他 Chrome 实例。出于某种原因,如果在使用正确的命令行参数启动 chrome 之前正在运行另一个 chrome 实例,它将无法工作。

      然后,最后一步(此步骤归功于 @binji),使用此参数从命令行启动 chrome:

      google-chrome --allow-nacl-socket-api=localhost
      

      然后转到http://localhost:5103/api/socket。这一次,你应该有这个:

      tcp
      Resolving ...
      Resolved: 127.0.0.1:80
      Connecting ...
      Connected
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-02-08
        • 2012-02-19
        • 2011-12-06
        • 2012-04-21
        • 1970-01-01
        • 2011-06-14
        • 2011-01-27
        • 2011-04-21
        相关资源
        最近更新 更多