问题标签 [getaddrinfo]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
winsock - 如何使用 getaddrinfo()?
我正在尝试制作一个简单的程序,它接受像 www.google.com 这样的字符串并返回 IP 地址......
到目前为止我所拥有的:
第 4 个参数中的第 3 个应该做什么?getaddrinfo 函数是修改 new_addr 结构还是什么?我不太了解 msdn 文档。解析主机名后,我想将套接字连接到它。
python - IOError:[Errno 套接字错误] [Errno 11004] getaddrinfo 在可访问的地址上失败
我可以在我的浏览器中打开网址:http ://www.bloomberg.com/markets/chart/data/1M/AAPL: AR,但我的代码在这里得到了结果I/O error(socket error):[Errno 11004] getaddrinfo failed
::
c - 如何使用 getaddrinfo 连接到使用外部 IP 的服务器?
我正在编写一个小型 C 客户端/服务器应用程序,但在使用外部 IP 地址时无法使连接正常工作。客户端和服务器的代码都取自这里,尤其是客户端:
而服务器:
如果我在命令行中指定我的机器的 IP,因此server_name
客户端中的 设置为类似 的字符串151.51.xxx.xxx
,则套接字无法连接到服务器。也使用127.0.0.1
显示相同的行为,这让我认为当文档说明时:
您感兴趣的主机名位于 nodename 参数中。地址可以是主机名,例如“www.example.com”,也可以是 IPv4 或 IPv6 地址(作为字符串传递)。
这只是在开玩笑。
我做错了什么吗?防火墙等是否存在阻止客户端使用 IP 地址连接的问题?
注意:我已经针对这个问题进行了很多搜索,有些人说完全避免使用getaddrinfo
并直接填充INADDR_ANY
,但是getaddrinfo
文档指出传递NULL
asnodename
应该已经用 填充地址INADDR_ANY
,所以我不明白为什么要使用当新方法自动执行此操作时,旧方法。
python - 我应该如何在 Python 中处理这个 HTTPS 请求?
我正在尝试在 Python 中使用Strava API v3,但恐怕我遗漏了一些东西。文档说:
此基本 URL 用于所有 Strava API 请求: https ://api.strava.com
响应采用 JSON 格式并经过 gzip 压缩。
我目前正在这样做:
并开始这样做:
我不知道从哪里开始,因为我不太了解 HTTP 请求和 HTTPS
更新:根据梅林使用requests
模块的建议,我这样做:
但不断收到错误:
ruby-on-rails-3.1 - .rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/net/http.rb:644:in `initialize': 没有这样的文件或目录 - getaddrinfo (Errno::ENOENT)
当我尝试运行时出现此错误:rake db:migrate、rake schema:load 和 rails s。我从 Bitbucket 克隆的应用程序无法使用,客户端无法提供帮助。
我已经重新安装了 ruby 和 gemset,但它没有工作。我不知道如何解决这个错误。请帮忙。是什么导致了错误,我在哪里可以找到可能帮助我修复它的信息?
Errno::ENOENT
Rails.root:/home/jacek/Programming/Rails/idea-academy 应用程序跟踪 | 框架跟踪 | 全跟踪
c - 如果 DNS 超时,使用 getaddrinfo() 只会第一次检查 nscd 缓存
如果我得到一个初始的“名称或服务未知”(EAI_NONAME),对 getaddrinfo() 的下一次调用似乎直接进入 dns 而不是首先检查缓存(nscd 日志显示没有查找尝试,tcpdump 显示到 DNS 服务器的流量)。如果第一次调用成功获取地址,那么从那时起,所有 getaddrinfo() 调用都会按预期首先转到 nscd。
我正在为 arm linux 编译 glibc-2.13。在我的 rc.d 中,nscd 在我的守护进程之前启动。nscd 设置为禁止共享缓存,并维护主机缓存。我正在使用来自busybox(0.47)的nscd。nsswitch.conf 已设置,以便主机检查缓存/文件/dns。hosts.conf 设置为检查文件/绑定。
我的守护进程正在调用 getaddrinfo()。
我有运行 nscd 的调试日志,它们显示客户端开始读取 DNS 响应并以“Broken Pipe”错误关闭。
之后,它会显示来自其他守护进程尝试使用缓存的 GAI 尝试(所以我知道它没有被 nscd 锁定或其他任何东西),但获得 EAI_NONAME 的守护进程再也不会联系 nscd 进行缓存查找。
如果我重新启动守护程序,我会得到相同的行为,如果第一个 DNS 查询再次超时。
glibc 中有什么东西使我的守护进程到缓存的链接无效吗?有没有办法将我的守护进程重新连接到缓存而不重新启动它(类似于通过 res_init() 强制 resolv.conf 重新加载)?
python - “getaddrinfo() 参数 1 必须是字符串或无”在 Linux 上启动 dev_appserver.py 时出错
在一段时间没有使用 App Engine 之后,我正在重新开始使用它。我正在使用 64 位 Linux Go 运行时版本 1.8.1。
我相信我正确地遵循了文档中的步骤,并且我相信我正在做过去正常工作的事情,但是我在尝试启动时遇到了这个错误dev_appserver.py
:
我的第一个想法是我可能使用了不正确的 Python 版本。果然,我用的是 2.7.5,而且文档明确指出 2.5 是必须的。但是,文档似乎已经过时了,因为在安装 2.5 并将我的系统设置为使用它之后,我收到了这个错误:
好的,回到 2.7.5 和我最初的错误。
我不确定这是否是dev_appserver.py
Python 代码中的错误(我猜不是,因为它已经发布了一个月),我的 Python 安装问题,或者我的系统未根据配置的其他问题谷歌的期望。
除非必要,否则我宁愿不要乱用dev_appserver.py
代码,但我很乐意戳它以帮助找出问题所在。错误在第 194 行;这是第 190-195 行:
我已经确定包含方法被调用了两次。第一次host
总是"127.0.0.1"
而且port
是0
。第二次是崩溃的;host
总是10
(一个整数,而不是字符串),并且port
是一个看似随机的五位整数。
我已经尝试对 or 进行硬编码host
,但随后"127.0.0.1"
又出现了另一个错误。我感到头晕目眩,我怀疑我不会通过改变我不太了解的事情来解决真正的问题。谷歌搜索错误消息没有帮助。port
8080
0
c - 接受多个 UDP 连接的套接字控制
我正在打破我的想法,试图了解如何让我自己编写的客户端/服务器接受多个套接字连接。
连接是一个数据报(UDP),目前是基于getaddrinfo(3) man page
works nice实现的,但是每个客户端都需要等待早期连接的处理过程。
我听说过 select,但在其手册页中说:
select() 可用于以可移植且有效的方式解决许多问题,天真的程序员试图使用线程、分叉、IPC、信号、内存共享等以更复杂的方式解决这些问题。
和更多:
Linux 特有的 epoll(7) API 提供了一个在监控大量文件描述符时比 select(2) 和 poll(2) 更高效的接口。
那么,是吗?epoll 简直比 select 好?还是视情况而定?如果取决于,取决于什么?
epoll 手册页有一个部分示例,所以我试图理解它。
现在,(在服务器上)我想,我需要一个线程来监听一个线程并写入另一个线程。但是如何控制部分消息的完成呢?如果两个客户端交错发送部分消息,如何识别?通过 sockaddr?如果它是唯一需要,我可以在没有池的情况下管理它,那么为什么要使用 epoll 呢?
谁能尝试向我解释,如何制作或在哪里了解多连接客户端-服务器 UDP 应用程序?
c - getaddrinfo - 错误:成功
我很迷茫。
我getaddrinfo
用来获取给定网络主机的地址信息。
在这种情况下,我一直在使用www.cmu.edu
.
我的代码工作了一段时间,但后来停止了。
奇怪的是,我显然想出了一个错误,但是当错误代码被打印出来时,它说“成功”。
以下是相关的代码:
Host 和 portNo 是包含主机(在本例中为“ www.cmu.edu
”)和端口(在本例中为“80”)的字符串。
它们肯定包含正确的东西,没有多余的空格或类似的东西。
编辑:谢谢大家!我现在至少有一个适当的错误消息,即使我仍然不知道为什么事情停止工作。错误信息是:
我一直在寻找导致此错误的可能原因,但没有发现任何东西。正如我所说,这段代码在早些时候运行,并且在我没有更改任何内容的情况下就停止了。我推断它可能是我使用的端口号,但我已经更改了几次,没有任何改变。
有什么见解吗?我没有附加到端口号或除主机之外的任何东西。我只是想让它工作。
ruby - Webdriver 在 IE10/Win7 上导致“SocketError: getaddrinfo: No such host is known”
我们有一个虚拟的 Windows 7 映像,我们的 CI 在 IE10 上运行我们的功能测试。功能测试是使用 Cucumber + Watir-Webdriver 用 Ruby 编写的。
大多数时候它工作正常,但时不时地每个测试开始失败,但出现以下异常:
在我重新启动虚拟机之前,通常不会进行进一步的测试运行,然后它会再次运行几天。
我检查了 selenium-webdriver 的代码,失败的行是:
我们没有使用代理,只能在外部 Intranet 内进行通信。不过可以上网。hosts 文件不包含 localhost 的任何条目。我们正在使用 selenium-webdriver 2.34.0。我们相同配置的Win7/IE9虚拟机没有这样的问题。