sockets - NaCl 中的套接字代码损坏

标签 sockets google-nativeclient

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

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

#define ENOSYS      38  /* Function not implemented */ 

为什么要调用connect功能失败,但我能够通过 gethostbyname() 成功解析主机?

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

最佳答案

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

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

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

关于sockets - NaCl 中的套接字代码损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22492182/

相关文章:

directx - 能否将 DirectX 游戏移植到 Google Native Client?

c++ - 将 C++ 代码( native 客户端)移植到浏览器(Web 应用程序)

google-chrome - 从 chrome 浏览器启动我安装的应用程序

将 chrome 原生客户端中的 pp::Var 数组转换为 C 整数数组

sockets - 在 Luasocket 中,即使在 select 告诉它可以安全读取之后,在什么情况下 accept 调用也会阻塞?

.net - .NET 中是否有任何基于消息的 TCP 套接字库?

c++ - 从客户端接收消息时如何解决窗口卡住问题(无响应)?

linux - 如何将 ZBar 移植到 NaCl

C - 大约 30 次读取后无法读取套接字

c# - C#套接字服务器连续读取