利用InetAddress.getAllByName(site)寻找随机网站。该方法,如果site可访问,则返回InetAddress[],否则将抛出UnknownHostException。程序一个明显的问题是效率不高,在无用的链接上浪费时间过多,平均每找到一个花时间2-5秒;这是很恐怖的。
package corejava.chapter.network;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.Calendar;
import java.util.Random;
import java.util.Vector;
/**
* 随机搜寻可以访问的网址
*/
public class LookforWWWSite {
private static Random r = new Random();
private static final int WANTSITESCOUNT = 10;
/**
* 随机生成指定长度字符的2、3级域名
*
* @param bits
* @return
*/
private static String getPrename (int bits) {
char[] chars = new char[bits];
for (int i = 0; i < bits; i++) {
chars[i] = (char) (r.nextInt(26) + 97); //a~z
}
return "www." + new String(chars);
}
/**
* 网址生成规则,3级别域名+ 2级域名 + 1级域名
* 3级域名:www 2级域名:3-5位字符组合
*
* @param args
*/
public static void main(String[] args) {
Vector<String> sites = new Vector<String>();
String[] name1 = { ".com", ".net", ".org", ".cn" };
System.out.println("Start at "+ Calendar.getInstance().getTime());
long start = Calendar.getInstance().getTimeInMillis();
while (true) {
String prename = getPrename(3 + r.nextInt(3)); // 3~5
for (String n1 : name1) {
try {
String site = prename + n1;
InetAddress.getAllByName(site);
if (!sites.contains(site)) {
sites.add(site);
if (sites.size() >= WANTSITESCOUNT) break;
}
} catch (UnknownHostException e) {
}
}
if (sites.size() >= WANTSITESCOUNT) break;
}
long end = Calendar.getInstance().getTimeInMillis();
System.out.println("Take time in millis : "+ (end - start));
for (String site : sites)
System.out.println(site);
}
}
输出结果:
Start at Wed Mar 19 14:56:18 CST 2008
Take time in millis : 41672
www.nag.com
www.nag.net
www.nag.org
www.rdlz.com
www.rdlz.cn
www.ctm.com
www.ctm.net
www.ctm.org
www.ctm.cn
www.pqqz.com
分享到:
相关推荐
6、优化“文本_取随机数字”精简代码,提高执行效率,感谢易友[ds9660]反馈。 7、修正“普通填表->链接_点击”无法在本窗口中打开的BUG,感谢易友[@zhuan888]反馈。 8、修正“时间_时间戳转文本”代码不严谨出现数组...
matab代码,采用遗传算法求解旅行商问题:随机生成城市群,寻找途径所有城市且只访问一次的最短路径
根据发布的文章标题,自动拆分成词语(SEO必备杀招),并生成内链接(SEO增加网站内链),并写入SEO相关标题自动生成摘要:根据文章内容生成文章主要内容的摘要,并写进SEO相关标题自动生成预览图片:随机寻找主要...
计算P(2,k)有问题,neighbor已经删除了不可访问节点,所以neighbor中节点的索引号和nodes_data{node_step, 4}索引号不是一一对应关系,应该先找到对应的索引号。 修正: ![修正1](./imgs/2.jpg) 实验 **信息素...
本书既可作为C程序的初学者学习用书,也可作为程序开发人员、相关培训机构老师和学生的参考用书。 第1章 基础知识 1 1.1 进制转换 2 实例001 十进制转换为十六进制 2 实例002 十进制转换为二进制 3 实例...
实例168 如何访问同名的方法或变量 268 实例169 super()方法的使用 271 实例170 this方法的使用 274 实例171 一张考试成绩单 275 实例172 银行自动存取一体机 278 9.4 多态 284 实例173 ...
5.31 更便捷地访问数据框内容 152 5.32 基本数据类型之间的转换 154 5.33 不同结构化数据类型间的转换 156 第6章 数据转换 159 6.1 向量分组 160 6.2 将函数应用于每个列表元素 161 6.3 将函数应用于...
11.7 随机访问文件 11.8 文件描述符输入/输出 11.9 文件访问权限 11.10 在c程序内部执行命令 11.11 在c程序内部使用管道 11.12 环境变量 11.13 c编译器 11.14 使用性能评估程序 11.15 函数库 11.16 对c代码进行计时 ...
→ 以各种不同的随机访问掩护真实的加密锁访问。对随机询问的答复进行处理,但不真正使用它。 → 可在加密锁里的多个地址预先写入不同数据,校验锁时可以随机地对其中的某个地址进行校验。(如可随机产生一个数,再...
角点检测代码matlab TTK-4900-大师 TTK4900-工程控制论,硕士学位论文 报告摘要 由于无法预测的非线性和对物理观测的访问有限,因此使用数值模型预测海洋动力学具有挑战性。 海洋涡旋对理论和模型提出了复杂的概念和...
16.11 自动化py2exe将脚本编译成Windows可执行文件的过程 585 16.12 在UNIX中将主脚本和模块绑成一个可执行文件 587 第17章 扩展和嵌入 590 引言 590 17.1 实现一个简单的扩展类型 592 17.2 用Pyrex实现一个...
跳过其余内容,并在utils目录中查找脚本,这些脚本可让您访问导出,包括原始数据和已处理的数据库。这里有什么docker :在docker中更轻松的开发设置。 etl :包含最重要的内容,下载,解析和处理PAD游戏数据。 ...
4.7 我有些解析外部结构的代码,但是它却崩溃了,显示出了“unaligned access”(未对齐的访问)的信息。这是什么意思? 47 作为函数参数的指针 47 4.8 我有个函数,它应该接受并初始化一个指针:void f(int *ip)...
**版本0.1.9 **-通过Travis-CI添加了自动构建和部署-源代码可从下面的GitHub链接获得**版本0.1.0 **-Just Do It的初始版本有关旧版本的信息,请访问以下链接:https://github.com/hunterparks/JustDoIt 支持语言:...
参数 随机渐变, 逻辑型, 可空, 不选不随机颜色 .参数 字体抖动, 逻辑型, 可空 .子程序 查看字节集1, 文本型, 公开, 以易语言文本方式查看字节集,返回文本内容 如:{ 102, 204, 14, 5 } .参数 字节集, 字节集, , 欲...
OpenCV入门必备 图书目录: 第1章 概述 什么是OpenCV OpenCV的应用领域 什么是计算机视觉 OpenCV的起源 下载和安装OpenCV 通过SVN获取最新的OpenCV代码 更多OpenCV文档 OpenCV的结构和内容 移植性 练习 第2章 OpenCV...
一种上传软件的维持功能与竞争对手的不同之处在于,它提供了完全可定制的维持选项,包括时间开始发送命令,命令之间的随机时间间隔,可定制的命令列表,自动重拨选项。 多个Connections-Connect,浏览和导航多个站点同时...
4.7 我有些解析外部结构的代码,但是它却崩溃了,显示出了“unalignedaccess”(未对齐的访问)的信息。这是什么意思? 作为函数参数的指针 4.8 我有个函数,它应该接受并初始化一个指针:voidf(int*ip){...
访问量大的网站可以考虑关闭session机制,增强系统抗压性能。 淘贴 为了更好的挖掘站点内容,形成历史沉淀,增强可阅读性,新增淘贴功能。通过此功能,可以借助会员的力量,让论坛的好帖子得到更好的整理与展现,让...