31、Java入门—网络编程之相关API的应用

InetAddress类用于标识网络上的硬件资源,表示互联网(IP)地址

InetAddress类未提供构造方法,可以通过该类的一些静态方法获得InetAddress类的实例

1.InetAddress类没有构造方法,所以不能直接new出一个对象;
可以通过InetAddress类的静态方法获得InetAddress的对象;
InetAddress.getLocalHost();
InetAddress.getByName("");
2.类主要方法:
String - address.getHostName();
String - address.getHostAddress();
public static InetAddress getByName(String host) throws UnknownHostException
在给定主机名的情况下确定主机的 IP 地址。
主机名可以是机器名(如 "java.sun.com"),也可以是其 IP 地址的文本表示形式




java.net.InetAddress类的getHostName方法用来获取某一IP地址的主机名。返回结果:此IP地址的主机名;如果安全检查不允许操作,则返回IP地址的文本表示形式。
1.如果不能立即获取主机名,程序会继续尝试一段时间,若干时间后标志为失败,然后返回IP地址。
2.由于并不是总能成功获取,因此可能会出现长时间等待的情况,这个时间大概有十几秒钟。在编写实时的网络程序时,应该注意这个问题。如果允许,尽量采用IP地址代替主机名称。 
3.即使通过getHostName方法成功获取主机名称,不同的平台的主机名的格式也是不同的。在编写跨平台的网络程序时,应该注意这个问题。


url:统一资源定位符:表示internet上的网络资源
协议+资源名称
url常用方法:
存在java.net包中,提供创建url/子url,获取url等方法
第一步:创建实例
URL imooc=new URL("http://www.imooc.com");
//在原有url下再创建url<br>
URL url=new URL(imooc,"/index.html?username=tom#test")
//获取url的信息
url.getProtocol();//获取协议http
url.getHost();//获取主机www.imooc.com
url.getPort();//获取端口号:-1
url.getPath();//获取文件路径/index.html
url.getFile();//获取文件名/index.html?username=tom
url.getRef();//获取相对路径test
url.getQuery();//查询字符串username=tom
注:创建url时没有指定端口号则getPort方法返回-1,协议不同会使用默认端口
2url读取网页内容:
URL url=new URL("http://www.baidu.com");
//获取输入流通过openStream方法
InputStream is=url.openStream();
//转化成字符输入流
InputStream isr=new InputStreamReader(is);
//加缓冲提高读取效率
BufferedReader br=new BufferedReader();
String date=br.teadline();
while(date.next()){System.out.print(date);
date=br.readLine();
}
完成后要关闭资源相关资源:br,isr字符输入流,is字节输入流
注:如果输出是乱码则要在is字节输入流中规定编码为
InputStream isr=new InputStreamReader(is,"utf8");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值