我必须为发出使用Java发送http get的一般问题而道歉。 (通过可能受到许多事情的影响。)
我被要求调查在Java中通过互联网从单个客户端到单个远程主机的请求数量。
让我们假设远程主机可以处理客户端发送给它的尽可能多的http get请求。
基本上,我的方法是在尽可能多的线程中运行以下Java代码。 private void send(int i)抛出IOException {
final String urlStr = String.format(urlTemplate, host, i);
URL urlObj = new URL(urlStr);
HttpURLConnection con = (HttpURLConnection) urlObj.openConnection();
con.setRequestMethod("GET");
con.setRequestProperty("User-Agent", USER_AGENT);
con.getResponseCode();
con.disconnect();
}
如果我有10个或更多线程,我会得到 java.net.NoRouteToHostException:无法分配请求的地址
经过一些谷歌搜索,我发现设置/ proc / sys / net / ipv4 / tcp_tw_reuse 到1,有助于获得上述NoRouteToHostException,有20个线程。
有20个线程,现在我可以从一个客户端向远程主机发送大约2000个http get请求。
客户端是否有任何其他更改会增加我可以从单个客户端发送的http获取请求的数量?
提前感谢您的任何帮助!
盛