java网络编程(二)----IP和端口

前言

这网络编程的笔记是在学习B站狂神说所做的。今天我们将要了解的是IP和端口

1. IP

IP地址封装的类是InetAddress
[1] 唯一定位一台网络上的计算机,例如:我们经常看到的 127.0.0.1就是本机的localhost
[2] IP地址的分类

  • 现在的IP地址分为两类: ipV4和 ipV6

  • IPV4 如: 127.0.0.1(由4个字节组成,一个字节由8位二进制数组成,则共有32位;则每个字节的取值范围为0~255)
    这里面差不多有42亿个地址,有30亿在北美,亚洲只有4亿。(早在2011年就用尽)

  • IPV6: 128位,8位无符号的整数(可以包含字母a,b,c,d,e,f) ===>在这其中1个无符号整数可以表示16位2进制数。

 2001:0bb2:aaaa:0015:0000:0000:1aaa:1312

[3] 公网(互联网) —— 私网(局域网)

  • ABCD类地址(0~255之间,每类地址对现有的空间折半取出)
  • 192.138.xx.xx 专门给组织内使用(也就是我们平时使用的局域网)
  • 而所谓的域名其实就是通过DNS域名解析器把IP地址变成方便我们记忆的字母

IP地址封装的java类是InetAddress

package com.gs.lesson01;

import java.net.InetAddress;
import java.net.UnknownHostException;
// 测试 IP
public class TestInetAddress {
    public static void main(String[] args) throws UnknownHostException {
        //查询本机地址
        InetAddress inetAddress01 = InetAddress.getByName("127.0.0.1");
        System.out.println(inetAddress01);
        InetAddress inetAddress03 = InetAddress.getByName("localhost");
        System.out.println(inetAddress03);
        InetAddress inetAddress04 = InetAddress.getLocalHost();
        System.out.println(inetAddress04);

        //查询网站ip地址
        InetAddress inetAddress02 = InetAddress.getByName("www.baidu.com");
        System.out.println(inetAddress02);

        //常用方法
        System.out.println(inetAddress02.getCanonicalHostName());  //规范的名字
        System.out.println(inetAddress02.getHostAddress());  // ip
        System.out.println(inetAddress02.getCanonicalHostName()); // 域名或自己电脑的名称
    }
}

2. 端口

端口表示的计算机上的一个程序的进程
ctrl+shift+Esc 打开任务管理器
java网络编程(二)----IP和端口_第1张图片

  • 不同进程有不同的端口,用来区分软件

  • TCP/UDP协议中每个规定的端口数为 0~65535
    TCP如果使用了80端口,那么该协议下的其他软件就不能使用该端口,而UDP协议下的软件则可以使用该端口

  • 端口的分类
    [1] 公有端口: 0~1023

  HTTP:80
  HTTPS:443
  FTP:21
  Telnet:23

[2] 程序注册端口: 1024~49151,分配给用户或程序

Tomcat:8080
MySql: 3306
Oracle: 1521

[3] 动态,私有: 49152~65535
cmd下关于端口的相关命令:

netstat -ano  # 查看所有的端口
netstat -ano|findstr "12740"  #查看指定的端口
tasklist|findstr "12740" # 查看指定端口的进程

IP地址和端口在java中的类为 InetSocketAddress

package com.gs.lesson01;

import java.net.InetSocketAddress;

public class TestInetSocketAddress {
    public static void main(String[] args) {

        InetSocketAddress socketAddress = new InetSocketAddress("127.0.0.1", 8080);
        InetSocketAddress socketAddress1 = new InetSocketAddress("localhost", 8080);
        System.out.println(socketAddress);
        System.out.println(socketAddress1);

        System.out.println(socketAddress.getAddress());
        //在window操作系统下可以找到C:/Windows/System32/drivers/etc这里面的hosts对其隐射进行修改
        System.out.println(socketAddress.getHostName());  //地址
        System.out.println(socketAddress.getPort());  //端口
    }
}

你可能感兴趣的:(网络编程)