【发布时间】:2011-12-23 06:33:59
【问题描述】:
我搜索了 google、this site 和 JavaRanch,但找不到答案。
我的程序需要从选定的文件中获取代理(我使用 java gui FileChooser 类和 RandomAccessFile 完成了)
然后我需要从 txt 文件中的第一个代理开始验证代理。它将尝试连接到某个站点或端口以验证连接是否成功。如果连接成功(我得到了肯定的响应),它将代理添加到代理列表中,然后获取并检查列表中的下一个直到完成。
我知道该怎么做,但我遇到了一个小问题。我的问题是这个过程需要独立于连接速度,因为有人可能会为要处理的连接设置 15000(毫秒)超时并设置 100 个线程,然后由于连接太慢,所有代理都不会工作。
我听说过一种叫pinging的方法来检查代理,但是我不知道如何在java中使用它。
谁能给我解决方案或至少我可以使用的课程。
【问题讨论】:
-
您的
ping检查可能并不比仅仅打开到代理的连接并尝试使用它好很多。最好切换到非阻塞 IO 或限制可以创建的线程数,以免网络连接不堪重负。 -
@samold 一点都不好,反而更糟。
-
问题是我没有使用 ping 检查我刚刚提到它。我不知道如何使用它。所以我听说这可以通过套接字完成(在其他一些代理检查器软件上看到)但我无法获得他们的源代码。如果可以的话,可以用套接字来完成吗?
-
谁是可以设置 15 秒连接超时的“某人”,如果您也有 100 个线程,为什么会有问题?您希望检查多少个代理?
-
Somone 将是一个软件用户,问题会是这样的。想象一下有人像我一样有 2mbit/s 的连接并设置了 15 秒的超时时间,并设置了 100 个线程。你认为他们可以打开 100 个站点吗?这种连接需要 15 秒?我希望每 15 秒检查至少 100 个代理
标签: java sockets networking proxy connection