【问题标题】:Socket Code Broken in NaClNaCl 中的套接字代码损坏
【发布时间】:2014-03-18 22:15:30
【问题描述】:

我有大量现有的 BSD 套接字代码已移植到 NaCl。我能够构建、链接和运行此代码,但是一旦到达套接字代码,NaCl 模块就会崩溃。

我现在使用nacl_io,但是当我尝试调用 TCP 连接函数时,errno 38 出现错误,这意味着

#define ENOSYS      38  /* Function not implemented */ 

为什么调用connect函数会失败,但我可以通过gethostbyname()成功解析主机?

请注意,我使用的是来自 nacl_io 演示的示例代码。演示中的代码运行良好,但是当复制到我自己的项目时,调用connect() 时出现错误。

【问题讨论】:

    标签: sockets google-nativeclient


    【解决方案1】:

    只要先调用 nacl_io_init_ppapi 函数,connect() 就不会返回 ENOSYS。

    我最初在 pthread 之后列出的 make 文件中有 nacl_io。将 nacl_io 移到链接器列表的前面解决了这个问题。

    nacl_io 定义了一些在 libpthread 中定义的函数。如果 libpthread 在 nacl_io 之前列出,则使用来自 libpthread 的函数,如果在 nacl_io 之后列出,则使用来自 nacl_io 的函数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多