zoukankan      html  css  js  c++  java
  • InetAddress类和InetSocketAddress类

    InetAddress 类

    封装计算机的 IP 地址,不包含端口号

    InetAddress 类常用的方法

    1 String getHostAddress() 获得 IP 地址

    2 String getHostName() 获得主机名

    3 static InetAddress getByName(String host) 根据主机名获得 IP 地址

     1 import java.net.InetAddress;
     2 import java.net.UnknownHostException;
     3 
     4 public class TestInetAddress {
     5 
     6     public static void main(String[] args) throws UnknownHostException {
     7         
     8         InetAddress localHost = InetAddress.getLocalHost(); //本机
     9         System.out.println("本机IP地址:" + localHost.getHostAddress());
    10         System.out.println("本机名称:" + localHost.getHostName());
    11         
    12         //根据域名得到InetAddress对象
    13         InetAddress bd = InetAddress.getByName("www.baidu.com");
    14         System.out.println("百度服务器地址:" + bd.getHostAddress());
    15         System.out.println("百度服务器名称:" + bd.getHostName());
    16         
    17         //根据IP地址得到InetAddress对象
    18         InetAddress ia = InetAddress.getByName("39.130.131.42");
    19         System.out.println("服务器主机IP:" + ia.getHostAddress());
    20         //如果39.130.131.42IP地址不存在或者DNS(域名解析系统)不允许进行IP地址和域名的映射,就会直接返回域名地址
    21         System.out.println("主机名称" + ia.getHostName());
    22     }
    23 
    24 }

    运行结果:

    -------------------------------------------------------------------------

    InetSocketAddress 类

    此类用于实现 IP 套接字地址 (IP 地址+端口号),用于socket 通信

    InetSocketAddress 类常用的方法

    1 InetAddress getAddress() 获取 InetAddress 对象

    2 int getPort() 获取端口号

    3 String getHostName() 获取主机名

     1 import java.net.InetAddress;
     2 import java.net.InetSocketAddress;
     3 import java.net.UnknownHostException;
     4 
     5 public class TestInetSocketAddress {
     6 
     7     public static void main(String[] args) throws UnknownHostException {
     8         
     9         //创建对象
    10         InetSocketAddress is1 = new InetSocketAddress("localhost", 9999);
    11         InetSocketAddress is2 = new InetSocketAddress("127.0.0.1", 9999);
    12         InetSocketAddress is3 = new InetSocketAddress("192.168.136.1", 9999);
    13         
    14         InetAddress ia = InetAddress.getByName("192.168.136.1");
    15         InetSocketAddress is4 = new InetSocketAddress(ia, 9999);
    16         System.out.println("主机名称:" + is4.getHostName());
    17         System.out.println("主机IP地址:" + is4.getAddress());
    18     }
    19 
    20 }

    -----------------------------------------------------------------------------------------------------------------------------

    URL类

    URL(Uniform Resource Locator)统一资源定位符,由 4 部分组成:协议 、存放资源的主机域名、端口号和资源文件名。

    URL 是指向互联网“资源”的指针资源可以是简单的文件或目录,也可以是对更为复杂的对象的引用,例如对数据库或搜索引擎的查询

    URL 类常用方法

    1 String getProtocal() 获取此 URL 的协议名称

    2 String getHost() 获取此 URL 的主机名(如果适用)

    3 int getPort() 获取 URL 的端口号

    4 String getFile() 获取此 URL 的文件名

    5 getDefaultPort() 获取与此 URL 关联协议的默认端口号

    6 getPath() 获取此 URL 的路径部分

     1 import java.net.MalformedURLException;
     2 import java.net.URI;
     3 import java.net.URL;
     4 
     5 public class TestUrl {
     6     public static void main(String[] args) throws MalformedURLException {
     7         
     8         URL url = new URL("https://www.baidu.com:80/index.html");
     9         System.out.println("协议名称:" + url.getProtocol());
    10         System.out.println("主机名称:" + url.getHost());
    11         System.out.println("端口号:" + url.getPort()); //URL不指明端口号则getPort()返回-1
    12         System.out.println("获取资源路径:" + url.getFile());
    13         System.out.println("获取资源路径:" + url.getPath());
    14         System.out.println("获取默认端口:" + url.getDefaultPort());
    15     }
    16     
    17 }

    -------------------------------------------------------------------------------------------------------

    openStream()方法   打开到此 URL 的连接并返回一个用于从该连接读入的InputStream

     1 import java.io.BufferedReader;
     2 import java.io.BufferedWriter;
     3 import java.io.FileOutputStream;
     4 import java.io.IOException;
     5 import java.io.InputStream;
     6 import java.io.InputStreamReader;
     7 import java.io.OutputStreamWriter;
     8 import java.net.MalformedURLException;
     9 import java.net.URL;
    10 
    11 public class TestUrl2 {
    12     public static void main(String[] args) throws IOException {
    13         /**网络爬虫
    14          * (1)从网络上获取资源
    15          * (2)存储到本机
    16          */
    17         //(1)创建URL对象
    18         URL url = new URL("https://www.baidu.com");  //获取主页资源
    19         //(2)获取字节输入流
    20         InputStream is = url.openStream();
    21         //(3)缓冲流
    22         BufferedReader br = new BufferedReader(new InputStreamReader(is, "utf-8"));
    23         //(4)存储到本地
    24         BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("F://index.html"), "utf-8"));
    25         //(5)边读边写
    26         String line = null;
    27         while( (line = br.readLine()) != null) {
    28             bw.write(line); //写入
    29             bw.newLine();  //换行
    30             bw.flush();  //清空缓冲区
    31         }
    32         //(6)关闭流
    33         bw.close();
    34         br.close();
    35     }
    36 
    37 }
  • 相关阅读:
    2015年第六届 蓝桥杯B组 C/C++决赛题解
    【每日一题】22.美味菜肴 ( 01背包变种问题 )
    【译】N 皇后问题 – 构造法原理与证明 时间复杂度O(1)
    服务商快速创建的小程序如何开通云开发?
    小程序●云开发感恩特惠震撼来袭,折扣力度历史最大
    云开发者专属盛会:邀你一起「重新定义开发」
    如何用 Cloudbase Framework 部署一个 Vue 项目
    Java 类型信息详解和反射机制
    Java7 新特性 —— java.nio.file 文件操作
    Java8 新特性 —— Stream 流式编程
  • 原文地址:https://www.cnblogs.com/bfcs/p/10787114.html
Copyright © 2011-2022 走看看