java基础之网络(InetAdress、URL)

一)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();
		}



















  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值