0

設定しjava.net.URLたインターネットからHTMLを取得するために使用しますkeepAlivemaxConnections

System.setProperty("http.keepAlive", "true");
System.setProperty("http.maxConnections","600");

そして、次のようないくつかのスレッドを使用して、インターネットからhtmlのフェッチを開始します。

protected static String content(URLConnection conn) throws IOException {
    try (InputStream in = getInputStream(conn)) {
        //bla bla bla...
        // get bytes from in
        return new String(bytes, charset);
    }
}

しかし、この手順をしばらく(5〜8時間)実行すると、ターゲットWebサイト(テスト用)が760接続を確立していることがわかりましたか?

では、URLConnectionを手動で閉じる必要がありますか?

4

2 に答える 2

0

正直なところ、URLConnectionの代わりにSocket / ServerSocketを使用してみてください。Socketsでは、選択したときにソケットを閉じることができます。これにより、開く、閉じる、読み取る、接続に書き込みます。APIをチェックしてください:

http://docs.oracle.com/javase/6/docs/api/java/net/Socket.html

于 2012-09-28T01:19:59.880 に答える
0

APIを使用して明示的に接続を閉じる方法を見たことがありません。ただし、メソッドを使用して接続読み取りタイムアウトを設定できますsetReadTimeout。これは、接続を確立する前に設定する必要があります。

于 2012-09-28T01:52:45.937 に答える