如何从Java中的同一客户端发送尽可能多的http到同一主机

时间:2013-10-04 20:29:23

标签: http

我必须为发出使用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获取请求的数量?

提前感谢您的任何帮助!

0 个答案:

没有答案