android - getaddrinfo() 在 Android 中失败?

标签 android sockets android-ndk

我正在使用 Android NDK 构建链构建一个 C 库。一切正常,但以下部分引起了问题:

#include <netdb.h>
...
    struct addrinfo* addr_result;

    struct addrinfo hints;
    memset(&hints, 0, sizeof(hints));
    hints.ai_family = AF_INET;
    hints.ai_socktype = SOCK_STREAM;
    hints.ai_protocol = IPPROTO_TCP;

    LOGD("host name: %s", name);
    result = getaddrinfo(name, GCSL_NULL, &hints, &addr_result);
    LOGD("result: %d", result);

getaddrinfo 返回错误代码 7,翻译为“EAI_NODATA”。

我尝试将“name”强制为“www.google.com”和“http://www.google.com”等简单网址,但没有任何效果。

我正在使用模拟器进行调试,该模拟器通常能够从其他应用程序连接到互联网。

最佳答案

确保您在 AndroidManifest.xml 中拥有 INTERNET 权限。

关于android - getaddrinfo() 在 Android 中失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3427202/

相关文章:

c/中断的系统调用/fork 与线程

c++ - 在进入 main() 之前我遇到段错误

c - Android NDK OpenSSL 交叉编译错误

java - Android: native 代码如何与java代码交互?

Node.JS Socket.IO SSL CORS 错误

android - 导入 Android NDK 项目(解码 OGG)

android - ViewStub 空指针异常

Android Telegram 编译错误

android - 如何阻止div重叠? (它在浏览器中运行良好,但在手机或平板电脑上运行不正常)

android - 使用 ListAdapter 使用 simple_list_item_2 在 ListView 中显示联系人姓名和号码,如何在 onItemClick() 中仅提取号码?