1

我正在尝试连接到一个我知道存在但我不知道何时存在的 URL。我无权访问此服务器,因此无法更改任何内容来接收事件。

实际代码是这样的。

URL url = new URL(urlName);
for(int j = 0 ; j< POOLING && disconnected; j++){
    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
    int status = connection.getResponseCode();
    if(status == HttpURLConnection.HTTP_OK || status == HttpURLConnection.HTTP_NOT_MODIFIED){
        //Some work
    }else{
        //wait 3s
        Thread.sleep(3000);       
    }
}

Java 不是我最好的技能,从性能的角度来看,我不确定这段代码是否良好。我每 3 秒打开一个新连接?或者连接被重用?

如果我调用 disconnect() 我确保循环中没有打开新连接,但是......它会影响性能吗?

建议?知道 URL 存在的快速/最佳方法是什么?

4

2 回答 2

0

1)一定要使用断开连接,您不希望有许多不使用的打开连接。丢弃不使用的资源是任何语言的基本做法。
2)我不知道每3秒打开和关闭新的网络连接是否会污染系统资源,唯一的检查方法是尝试。
3) 您可能需要注意“ConnectException”,如果“URL [不] 存在”表示服务器已关闭。

于 2010-06-10T16:30:59.340 回答
0

从性能的角度来看,这段代码是可以的,它每次都会创建一个新的连接。无论如何,如果您Thread.sleep(3000)的循环中有一个,则不必担心性能;)

如果您担心服务器端的连接使用情况,您可以查看 apache HTTP 客户端,它有很多功能。我认为它默认处理保持活动连接。

于 2010-06-10T16:08:52.110 回答