Java网络编程从入门到精通(4):DNS缓存
import java.net.*;
public class MyDNS
{
public static void main(String[] args) throws Exception
{
// args[0]: 本机名 args[1]:缓冲时间
if (args.length < 2)
return;
java.security.Security.setProperty("networkaddress.cache.ttl", args[1]);
long time = System.currentTimeMillis();
InetAddress addresses1[] = InetAddress.getAllByName(args[0]);
System.out.println("addresses1: "
+ String.valueOf(System.currentTimeMillis() - time)
+ "毫秒");
for (InetAddress address : addresses1)
System.out.println(address);
System.out.print("按任意键继续");
System.in.read();
time = System.currentTimeMillis();
InetAddress addresses2[] = InetAddress.getAllByName(args[0]);
System.out.println("addresses2: "
+ String.valueOf(System.currentTimeMillis() - time)
+ "毫秒");
for (InetAddress address : addresses2)
System.out.println(address);
}
}
www.126.com/202.108.9.77
按任意键继续
addresses2: 0毫秒
www.126.com/202.108.9.77
www.126.com/202.108.9.77
按任意键继续
addresses2: 484毫秒
www.126.com/202.108.9.77
myuniverse/192.168.18.10
myuniverse/192.168.18.20
按任意键继续
addresses2: 0毫秒
myuniverse/192.168.18.10
myuniverse/192.168.18.20
import java.net.*;
public class MyDNS1
{
public static void main(String[] args) throws Exception
{
java.security.Security.setProperty("networkaddress.cache.negative.ttl",
"5");
long time = 0;
try
{
time = System.currentTimeMillis();
InetAddress.getByName("www.ppp123.com");
}
catch (Exception e)
{
System.out.println("www.ppp123.com不存在! address1: "
+ String.valueOf(System.currentTimeMillis() - time)
+ "毫秒");
}
//Thread.sleep(6000); // 延迟6秒
try
{
time = System.currentTimeMillis();
InetAddress.getByName("www.ppp123.com");
}
catch (Exception e)
{
System.out.println("www.ppp123.com不存在! address2: "
+ String.valueOf(System.currentTimeMillis() - time)
+ "毫秒");
}
}
}
www.ppp123.com不存在! address2: 0毫秒
www.ppp123.com不存在! address1: 4420毫秒
Java网络编程从入门到精通(4):DNS缓存相关推荐
- java消息头,Java网络编程从入门到精通:HTTP消息头字段
Java网络编程从入门到精通:HTTP消息头字段 一.通用头字段 1. Connection 这个字段只在HTTP1.1协议中存在.它决定了客户端和服务器进行了一次会话后, 服务器是否立即关闭网络连接 ...
- Java网络编程从入门到精通(1):Internet地址概述
所有连入Internet的终端设备(包括计算机.PDA.打印机以及其他的电子设备)都有一个唯一的索引,这个索引被称为IP地址.现在Internet上的IP地址大多由四个字节组成,这种IP地址叫做IPv ...
- Java网络编程从入门到精通(14):多种多样的建立网络连接的方式
在上一篇文章中我们讨论了Socket类的基本用法,并给出的例子中使用Socket类连接服务器时使用了一种最简单的连接方式,也就是通过IP和端口号来连接服务器.而为了使连接服务器的方式更灵活,Socke ...
- Java网络编程从入门到精通(25):创建ServerSocket对象
ServerSocket类的构造方法有四种重载形式,它们的定义如下: public ServerSocket() throws IOException public ServerSocket(int ...
- Java网络编程从入门到精通 (9):使用isXxx方法判断地址类型
IP地址分为普通地址和特殊地址.在前面的文章中所使用的大多数都是普通的IP地址,在本文中将介绍如何利用InetAddress类提供的十个方法来确定一个IP地址是否是一个特殊的IP地址. 一.isAn ...
- Java网络编程从入门到精通(24):实现HTTP断点续传下载工具(附源代码)
源代码下载:download.rar 在前面的文章曾讨论了HTTP消息头的三个和断点继传有关的字段.一个是请求消息的字段Range,另两个是响应消息字段Accept-Ranges和Content-Ra ...
- Java网络编程从入门到精通(2):创建InetAddress对象的四个静态方法
InetAddress类是Java中用于描述IP地址的类.它在java.net包中.在Java中分别用Inet4Address和Inet6Address类来描述IPv4和IPv6的地址.这两个类都是I ...
- Java网络编程从入门到精通(3):为什么不能直接通过IP访问网站
在<创建InetAdrress对象的四个静态方法>一文中通过getAllByName得到了www.csdn.net对应的四个IP地址.从理论上说,在IE(或其他的Web浏览器,如Fire ...
- Java网络编程从入门到精通(7):用getHostAddress方法获得IP地址
这个方法用来得到主机的IP地址,这个IP地址可能是IPv4的地址,也可能是IPv6的地址.getHostAddress方法的定义如下: public String getHostAddress() ...
最新文章
- pygame 移开的矩形留痕迹_Python之pygame学习矩形区域(5)
- 对E—R模型的深入理解
- redis、memcache、mongoDB 对比
- android4.0 开机启动activity 4.0,如何正确理解和使用Activity的4种启动模式
- Java内存泄漏介绍
- python 40位的数减个位数_Python——进制表示与转换
- php实现双向队列详解,PHP实现一个双向队列例子
- python xlrd导入后怎么保存_Python xlrd模块导入过程及常用操作
- java编程两个超长正整数相减_【每日编程237期】数字分类
- iOS中转义后的html标签如何还原
- lievent源码分析:evbuffer
- docker安装gamit_ubuntun10.10中安装gamit 10.40
- 朱石景 201671010457 团队项目评审课程学习总结
- css3 修改checkbox disabled颜色_HTML5 + CSS3 gt;gt;gt; 009
- 手机股票软件哪个好?这几款炒股app你不能错过!
- 时间片轮转调度算法模拟C语言
- 《高等代数学》读书笔记前言
- 数字图像处理 拜耳过滤器简介
- JAVA课程设计——彩票抽奖购买系统
- QQ使用的一个小问题