gpt4 book ai didi

c++ - 查明 IP 地址是否可达的最佳和快速方法

转载 作者:可可西里 更新时间:2023-11-01 10:57:20 24 4
gpt4 key购买 nike

我需要最快的方法来查看 IP 地址是否可达。在每个 IP 地址上都有一个服务器在特定端口上监听,所以如果您的方法是要查找服务器是否在端口上监听,请告诉我。

这样做的原因是假设我有 10 个 ip 地址,每个 ip 地址上有 10 个服务器监听端口 101。我希望我的客户能够找到一个可达的 ip 地址并尽可能快地连接到它(我不希望他等待 30 秒才能确定一个 ip 地址是否可达,然后尝试下一个 ip 地址列表)

可能必须同时进行。

最佳答案

虽然您可以快速确定 IP 是否可达,但您的问题是确定 IP 不可访问。原因是你不能总是明确地确定一个 IP 是不可访问的。虽然在某些情况下您会收到 IP 无法访问的肯定通知,但通常您的代码不会听到答案,在等待一段时间后,您的代码将假定 IP 无法访问。

决定超时的问题是网络拓扑。如果您的拓扑结构很大(例如 Internet),那么当您尝试连接到“很远”的 IP 时,您将需要较长的超时时间来处理潜在的高延迟。

根据您的描述,最好的办法是尝试同时连接到所有服务器并使用第一个接受连接的服务器。您可以使用线程,也可以使用非阻塞套接字。在非阻塞连接中,连接调用立即返回,然后您使用 select有效地确定连接调用何时完成(成功或出错)。

关于c++ - 查明 IP 地址是否可达的最佳和快速方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1955420/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com