为本机客户端运行套接字API

时间:2014-09-15 13:04:38

标签: sockets tcp google-nativeclient ppapi

我正在尝试运行goggle native client提供的socket api示例。(路径:nacl_sdk \ pepper_35 \ examples \ api \ socket)

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

以下是错误消息:

  

TCP
  解决...
  解决失败。

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

  

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

已完成以下更改:

  1. 在chrome上启用nacl
  2. 在chrome上启用nacl套接字api
  3. 已经尝试过以下事项:

    1. 使用命令行参数启动chrome " C:\ Program Files(x86)\ Google \ Chrome \ Application \ chrome.exe" --allow-NaCl的插座-API =" HTTP://本地主机"

    2. " C:\ Program Files(x86)\ Google \ Chrome \ Application \ chrome.exe" --allow-NaCl的插座-API = IP_ADDRESS_OF_MY_SYSTEM

    3. 谁能说出我在这里失踪了什么?

2 个答案:

答案 0 :(得分:1)

正确的论点是:

--allow-nacl-socket-api=localhost

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

答案 1 :(得分:0)

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

第一步是确保您在chrome:// flags中启用 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