java - 测量 HTTP、HTTPS、SOCKS 代理的运行状况

标签 java sockets tcp ip icmp

我有代理列表,例如 this 。它包含所有类型的代理:HTTP、HTTPS、SOCKS 等。我想每 X 分钟计算每个代理的心跳(运行状况)。

我发现了一个很好的例子,人们如何通过 Java 套接字 ping IP 地址:

Socket s = new Socket(hostname, port);
s.getOutputStream().write((byte) '\n');
int ch = s.getInputStream().read();
s.close();
if (ch == '\n') // its all good.

问题

我需要使用哪种协议(protocol)来 ping HTTP、HTTPS、SOCKS 服务器?

最佳答案

该代码不使用 ICMP,它打开到端口的 TCP 连接。

打开 TCP 连接(或者实际上使用 ICMP)仅验证主机网络堆栈是否能够响应,而不会验证代理本身的运行状况。为此,您必须使用代理协议(protocol)实际建立连接并验证对外部资源的代理。

关于java - 测量 HTTP、HTTPS、SOCKS 代理的运行状况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42862596/

相关文章:

java - 如何使用 Java Swing 使用 onClick 事件运行 linux 命令?

java - Adobe flex 与 Java 通信的最佳方式是什么?

java - 如何从 Java 使用 MySQL 转义字符串文字中的单引号

c# - 为什么在20%繁忙的计算机上出现IPC延迟

无法在Linux中使用Eclipse构建C项目

c# - 如何在高度可靠的批量传输期间减少 TCP ACK 的数量

java - 我忘记停止 GUI 程序并再次运行它。现在我无法在不杀死 eclipse 的情况下关闭第一个程序

c - 在两台直接相连的计算机之间的UDP连接中分配地址地址

linux - 找出哪个用户在应用程序内部创建了本地传入 TCP 连接

node.js - 如何在 Node.js 中获取现有服务器的实例?