Java网络编程 02 IP地址&&Port 端口

1.3 IP 地址


ip 地址:InetAddress

  • 唯一定位一台网络上的计算机
  • 127.0.0.1(这是本机 IP)
  • IP 地址的分类
  • ipv4:127.0.0.1(4个字节组成 每个字节 0 ~ 255 在 2019 年 用尽,北美 分配了 30亿ip,而亚洲只分配了 4 亿ip,所以亚洲 服务器的申请和域名的备案 是很费劲很费劲的…)

  • ipv6:fe80::e4a3:6cf7:4423:fc30%3(8个无符号整数,一共128位。可分配大约340282366920938460000000000000000000000.00 个IP 地址)

  • 公网(互联网)- 内网(局域网)

  1. 192.168.xx.xx.z 这就是局域网,专门给组织内部使用的。
  2. 公网

1.3.1 获取 IP

我们会用到 一个类,叫做 InetAddress。

package www.muquanyu.lesson01;

import java.net.InetAddress;
import java.net.UnknownHostException;

public class InetAddressDemo {
    public static void main(String[] args) {
        try{
            InetAddress getbyName = InetAddress.getByName("www.baidu.com");
            System.out.println(getbyName);
            System.out.println(InetAddress.getLocalHost());
            System.out.println(getbyName.getAddress());
            System.out.println(getbyName.getCanonicalHostName());
            System.out.println(getbyName.getHostName());
            System.out.println(getbyName.getHostAddress());


        }catch(UnknownHostException e)
        {
            e.printStackTrace();
        }
    }
}

在这里插入图片描述


1.4 Port 虚拟端口

虚拟端口实际上就是 计算机上一个程序的进程:

  • 只不过这个程序的进程 作用 和 普通程序的进程 不一样
  • 端口这个进程是 负责 与外界通讯交流的
  • 端口可以区分 软件
  • 端口(进程)被规定 是 0 ~ 65535 个
  • TCP/UDP:65535 * 2 (每个协议下 都应该有这些个端口可开辟!)
  • TCP:80 UDP:80(不同的协议 可以在 同一个端口下。)
  • 端口分类
  1. 公有端口 0 ~ 1023(一些协议端口,系统用到的端口,尽量不要用这里的端口)
  • Http 的端口是 803

  • Https 的端口是 443

  • FTP:21

  • Telent:23

  1. 程序注册的端口:1024 ~ 49151(我们平常的程序就是分配 到这些端口的)
    -Tomcat:8080
  • MySQL:3306
  • Oracle:1521
  1. 动态、私有 端口:49152 ~ 65535(尽量也不要用这里的端口)
  • IDEA 的 63342

我们可以通过 netstat -ano 来查看 当前所有的端口。在这里插入图片描述
我们可以通过 tasklist|findstr “进程名称或进程ID” 来查看 这个进程!(| 符号 叫做 管道符,是先把后面的指令执行的逻辑,放到前面指令里面的操作。)
在这里插入图片描述


1.4.1 Socket 套接字

套接字(Socket)= IP地址 + 端口号(Port Number)

网络通信就是靠 彼此的套接字 来识别的。

package www.muquanyu.lesson01;

import java.net.InetSocketAddress;

public class InetSocketAddressDemo {
    public static void main(String[] args) {
        InetSocketAddress inetSocketAddress = new InetSocketAddress("127.0.0.1", 8080);
        System.out.println(inetSocketAddress);

        System.out.println(inetSocketAddress.getAddress());
        System.out.println(inetSocketAddress.getHostName());
        System.out.println(inetSocketAddress.getPort());



    }

}

在这里插入图片描述
我们的 软件 是怎么 找到 别人电脑上的 软件,然后 进行通讯的呢?

答:就是 用我们电脑上的软件,找到 其它人电脑 上的软件的 接口呀。然后 传输数据 进去。如果 该软件 有 接收和处理 该数据的代码,那就OK了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值