- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试通过 Appstore 的 IPv6 支持,但遇到了一些问题。
我关注了苹果公会Supporting IPv6 DNS64/NAT64 Networks ,我的代码:
const char sAddr[] = "123.123.123.123"; //my IPv4 gamesvr, using boost asio
const char sPort[] = "9899";
const char *cause = NULL;
int sock_;
struct addrinfo hints, *res, *res0;
memset(&hints, 0, sizeof(hints));
hints.ai_family = PF_UNSPEC;
hints.ai_socktype = SOCK_STREAM;
hints.ai_flags = AI_DEFAULT;
int error = getaddrinfo(sAddr, sPort, &hints, &res0);
if (error) {
return false;
}
sock_ = -1;
for (res = res0; res; res = res->ai_next) {
sock_ = socket(res->ai_family, res->ai_socktype,res->ai_protocol);
if (sock_ < 0) {
cause = "socket";
continue;
}
if (::connect(sock_, res->ai_addr, res->ai_addrlen) < 0) {
error = errno; // error = 49, EADDRNOTAVAIL
break;
}
break; /* okay we got one */
}
if (sock_ < 0) {
freeaddrinfo(res0);
return false;
}
freeaddrinfo(res0);
return true;
在 IPv4 WIFI 下,我的游戏运行良好。
当切换到 IPv6-ONLY WIFI(由 mac 运行)时,使用 CURL 的功能运行良好,我可以获取网页内容,但 socket connect() 失败,errno 49(EADDRNOTAVAIL),res->ai_family = 30 (AF_INET6)
任何人都请帮助我,非常感谢!
最佳答案
尝试将 error = errno;
之后的 break
更改为 continue
。如果 connect
失败,您应该尝试下一个地址。
解析器可能仍会为您提供原始 IPv4 结果和 NAT64 的合成 IPv6 结果。如果您收到的错误是由于尝试在纯 IPv6 网络上创建 IPv4 套接字,我不会感到惊讶。
关于c++ - IPV6 套接字 connect() 返回 EADDRNOTAVAIL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37782751/
应用程序在本地主机上工作正常。但是当它连接到服务器时出现错误。 我通过端口 22 连接服务器 这是错误 Error: listen EADDRNOTAVAIL Error: listen EADDRN
我真的遇到了这个问题。我在 Windows 机器上(具有管理员权限),我想开始使用 vagrant 设置我的工作环境。 问题是我遇到了错误(如下)并且我找不到任何解决方案......我正在使用最新的虚
我有一个简单的 Node.js 应用程序,无法连接到 SQL 数据库。 Web 服务器是 Azure Web App,运行 node.js 并使用 Tedious对于 SQL。DB 是 Azure S
突然间(上周工作正常)我在尝试使用 Nodemailer 发送电子邮件时开始收到发送邮件时出错:错误:连接 EADDRNOTAVAIL . 该错误确实很模糊,我不太确定 EADDRNOTAVAIL 的
我正在尝试使用以下脚本使用 node.js 下载文件: var http = require('http'); var fs = require('fs'); var file = fs.create
我刚开始使用 NodeJS 开发 Web 应用程序,我的应用程序有一个问题我不知道如何解决。 应用程序(我们使用 expressjs)在我的本地机器上运行平稳,但是当我们将它部署到我们的开发服务器进行
我在 172.16.1.218 上运行了以下 node.js 服务器: var net=require('net'); var server = net.createServer(function (
我在我的应用程序中出现了似乎无法重现的故障。我有一个失败的 TCP 套接字连接,应用程序试图重新连接它。在尝试重新连接的第二次 connect() 调用中,我得到一个错误结果,错误结果为 errno
我正在尝试通过 Appstore 的 IPv6 支持,但遇到了一些问题。 我关注了苹果公会Supporting IPv6 DNS64/NAT64 Networks ,我的代码: const char
(已在 Centos 6.5 和 Centos 7 上测试过) 如果您在 linux 中使用 INADDR_ANY 和 0 端口在 connect() 之前调用 bind() 那么 bind() 的临
我的公司发布了一个用于特殊用途的特殊 TCP 堆栈,我的任务是实现符合 RFC793 的关闭序列。其中一个单元测试有一个服务器在特殊的 TCP 堆栈之上工作,与一个普通的 Linux TCP 客户端通
我的 Node 应用程序正在监听端口 8080。当我添加时 app.listen(port,'50.30.217.289'); 我可以从浏览器访问该应用程序。但是,当我将 IP 地址替换为 EC2 实
我已经在 OpenShift 上开发了一个 nodejs 服务器,现在我正尝试在 Heroku 上为一个新项目制作相同类型的服务器。 这是我的服务器的最小代码: var http = require(
我最近在更新Laravel环境或Windows 10的一部分时遇到了一些错误,所以在经过大量的尝试和错误之后,我决定删除所有内容并从头开始。所以现在我有了新的 VirtualBox、Vagrant、L
我在我的笔记本电脑上安装了相当全新的 OpenSUSE,并尝试测试一个全新的 React 应用程序。 我从 create-react-app 站点运行了以下命令: npx create-rea
我用 node.js 编写了以下代码来访问 Twitter Streaming API。如果我 curl 下面的 URL,它就会起作用。但是,我无法让它与我的代码一起工作。 var https = r
我在 centos 6.3 服务器上使用 rail for teambox,实际上这只是在实际应用之前的试错。 我正在使用 2 个运行在相同 centos 版本和精确副本上的虚拟机,VM2 只运行远离
我在我的服务器中安装了 Nginx 和 Node.js。 当我尝试运行我的 node.js 文件时,我收到一个错误: node.js:201 throw e; // process.ne
我正在运行一个应该托管在本地服务器上的 Node 应用程序。 目前,我只发送一个明文响应。 const http = require('http'); var server = http.create
我正在尝试让一个nodejs应用程序在Azure上运行(它在Heroku上运行得很好)。 在应用程序上运行 npm start 后,出现以下错误: Error: connect EADDRNOTAVA
我是一名优秀的程序员,十分优秀!