您的位置:首页 > 理论基础 > 计算机网络

java基础之网络(InetAdress、URL)

2015-11-25 14:07 549 查看
一)java中的网络支持

       针对网络通信的不同层次,java提供的网络功能四大类:

  1、InetAdress:用于标识网络上的硬件资源

2、URL:统一资源定位符  通过URL可以直接读取或者写入网络上的数据

3、Sockets:使用TCP协议实现网络通信的Socket相关的类

4、Datagram:使用UDP协议,将数据保存在数据报中,通过网络进行通信

二)

InetAddress : 此类表示互联网协议 (IP) 地址。

public static InetAddress getLocalHost()
throws UnknownHostException

返回本地主机。 

public String getHostName()

获取此 IP 地址的主机名。
// 获取本机的InetAddress实例
InetAddress address = InetAddress.getLocalHost();
System.out.println("计算名:" + address.getHostName());
System.out.println("IP地址:" + address.getHostAddress());
byte[] bytes = address.getAddress();// 获取字节数组形式的IP地址
System.out.println("字节数组形式的IP:" + Arrays.toString(bytes));
System.out.println(address);  	// 直接输出InetAddress对象

// 根据机器名获取InetAddress实例
//		InetAddress address2 = InetAddress.getByName("101.105.144.9");
InetAddress address2 = InetAddress.getByName("wassili");
System.out.println("计算名:" + address2.getHostName());
System.out.println("IP地址:" + address2.getHostAddress());


三)URL(Uniform Resource Locator)  

    1)URL
代表一个统一资源定位符,它是指向互联网“资源”的指针。

     2)由两部分组成:协议名称和资源名称,中间用冒号隔开

3)在java.net包中,提供了URL类来表示URL

public URL(String spec)
throws MalformedURLException

根据
String
表示形式创建
URL
对象

try {
//创建一个URL实例URL csdn = new URL("http://blog.csdn.net");URL url = new URL(csdn, "/wassili520?username=tom#test");
System.out.println("协议:"+ url.getProtocol());
System.out.println("主机:"+ url.getHost());
//如果未指定端口号,则使用默认的端口号,此时getPort()方法返回值为-1
System.out.println("端口:"+url.getPort());
System.out.println("文件路径:"+url.getPath());
System.out.println("文件名:"+url.getFile());
System.out.println("相对路径:"+url.getRef());
System.out.println("查询字符串:"+url.getQuery());
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}


4)使用URL读取网页内容1、通过URL对象的openStream()方法可以得到指定资源的输入流
public final InputStream openStream()
throws IOException

打开到此
URL
的连接并返回一个用于从该连接读入的
InputStream
。此方法是下面方法的缩写:

openConnection().getInputStream()


		try {
//创建一个URL实例URL url = new URL("http://www.baidu.com");
//通过URL的openStream方法获取URL对象所表示的资源的字节输入流
InputStream is = url.openStream();
//将字节输入流转换为字符输入流
InputStreamReader isr = new InputStreamReader(is,"UTF-8");
//为字符输入流添加缓冲
BufferedReader br = new BufferedReader(isr);
String data = br.readLine();//读取数据
while (data != null) {//循环读取数据
System.out.println(data);//输出数据
data = br.readLine();
}
br.close();
isr.close();
is.close();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  URL