• Java 网络编程:(三)通信要素1:IP和端口号


    一、IP

      1、IP 是什么?

           IP地址:指互联网协议地址(Internet Protocol Address ),俗称IP。

         IP地址用来给一个网络中的计算机设置做唯一的编号,即唯一的表示 Internet 上的计算机(通信实体)。

      2、IP地址分类

        (1)分类方式一:IPV4 IPV6

          IPV4:4个字节组成,4个0-255,32位。大概 42 亿,30亿都在北美,亚洲4亿。2011年初已经用尽。 以点分十进制表示,如192.168.0.1

          IPV6128位(16个字节) , 写成8个无符号整数,每个整数用四个十六进制位表示,数之间用冒号(:)分开,如: 3ffe:3201:1401:1280:c8ff:fe4d:db39:1984

        (2)分类方式二:公网地址(万维网使用)和 私有地址(局域网使用)

          192.168. 开头的就是私有地址,范围即为 192.168.0.0 - 192.168.255.255,专门为组织机构内部使用

         无论是哪一种分类,IP地址都有不易记忆的一大缺点。

      3、常用命令

        (1)查看本机IP地址,在控制台输入:

    ipconfig
    

      

        (2)检查网络是否连通,在控制台输入:

    ping 空格 IP地址
    ing 220.181.57.216

          特殊的 IP 地址

          本地回环地址(hostAddress):127.0.0.1      主机名(hostName):localhost

      4、

      5、

    二、端口

      网络的通信,本质上是两个进程(应用程序)的通信。每台计算机都有很多的进程,那么在网络通信时,如何区分这些进程呢

      如果说IP地址可以唯一标识网络中的设备,那么端口号就可以唯一标识设备中的进程(应用程序)了。

      端口号用两个字节表示的整数,它的取值范围是 0~65535。

      分类:

      (1)公认端口0~1023。被预先定义的服务通信占用(如: HTTP占用端口80FTP占用端口21Telnet占用端口23),一般用于一些知名的服务和应用,普通的应用程序需要使用1024以上的端口号。

      (2)注册端口1024~49151。分配给用户进程或应用程序。(如: Tomcat占用端口8080MySQL占用端口3306Oracle占用端口1521等) 。

      (3)动态/私有端口49152~65535

      注意:0-1023 之间的端口号如果端口号被另外一个服务或应用所占用,会导致当前程序启动失败。

      

      端口号与IP地址的组合得出一个网络套接字: Socket

        利用 协议 IP地址 端口号 三元组合,就可以标识网络中的进程了,那么进程间的通信就可以利用这个标识与其它进程进行交互。 

    三、InetAddress 类

      1、主机的两种方式

        Internet 上的主机又两种方式表示地址:

        (1)域名(hostName):www.google.com

        (2)IP地址(hostAddress):202.108.35.210

      2、InetAddress 类概述

        InetAddress类主要表示IP地址, 两个子类: Inet4AddressInet6Address

        InetAddress 类 对 象 含 有 一 个 Internet 主 机 地 址 的 域 名 和 IP 地 址 :www.google.com 202.108.35.210

        域名容易记忆,当在连接网络时输入一个主机的域名后, 域名服务器(DNS) 负责将域名转化成IP地址,这样才能和主机建立连接。 -------域名解析

        

      3、域名解析

        

      4、InetAddress 类

         InetAddress类没有提供公共的构造器,而是提供了如下几个静态方法来获取InetAddress实例:

    public static InetAddress getLocalHost()
    
    public static InetAddress getByName(String host)
    

         InetAddress 提供了如下几个常用的方法:

    public String getHostAddress(): 返回 IP 地址字符串(以文本表现形式) 
    
    public String getHostName(): 获取此 IP 地址的主机名
    
    public boolean isReachable(int timeout): 测试是否可以达到该地址
    

      

      5、案例

     1   public static void main(String[] args) {
     2 
     3         try {
     4             InetAddress inet1 = InetAddress.getByName("192.168.137.1");
     5 
     6             System.out.println(inet1);
     7 
     8             InetAddress inet2 = InetAddress.getByName("www.google.com");
     9             System.out.println(inet2);
    10 
    11             InetAddress inet3 = InetAddress.getByName("127.0.0.1");
    12             System.out.println(inet3);
    13 
    14             //获取本机的域名和 IP 地址
    15             InetAddress inet4 = InetAddress.getLocalHost();
    16             System.out.println(inet4);
    17 
    18             //getHostName() 获取对象所含的域名
    19             System.out.println(inet2.getHostName());
    20 
    21             //getHostAddress() 获取对象所含的IP地址
    22             System.out.println(inet2.getHostAddress());
    23 
    24         } catch (UnknownHostException e) {
    25             e.printStackTrace();
    26         }
    27     }

      6、

    四、

    五、

  • 相关阅读:
    selenium-元素无法定位解决办法
    OpenResty 最佳实践
    openresty 学习笔记小结:综合应用实例
    openresty 学习笔记六:使用session库
    openresty 学习笔记番外篇:python的一些扩展库
    openresty 学习笔记番外篇:python访问RabbitMQ消息队列
    openresty 学习笔记五:访问RabbitMQ消息队列
    openresty 学习笔记四:连接mysql和进行相关操作
    openresty 学习笔记三:连接redis和进行相关操作
    Grunt教程——初涉Grunt
  • 原文地址:https://www.cnblogs.com/niujifei/p/14878165.html
Copyright © 2020-2023  润新知