最近改了游戏的网络层代码,运行 Android 版的时候 getaddrinfo 报错 Invalid value for ai_flags.
ai_flags 设置如下:
struct addrinfo hint = {0};
hint.ai_flags = AI_DEFAULT;
几经搜索,发现原来是 Android 的问题。
Android 和 FreeBSD 都有这个问题,对 AI_V4MAPPED 的支持有问题。
Android 上 AI_DEFAULT 是 AI_V4MAPPED_CFG | AI_ADDRCONFIG
最后只好把 Android 版本的代码中 ai_flags 的值设为 0