Java-网络编程、网络编程三要素(IP地址,端口号,协议)

个人简介

  • 大家好,我是翰慧腾。一名正在努力学JAVA的大一小白,本文章为初学的笔记,希望各位多多指教。
  • 欢迎点赞+收藏+留言
  • 小时候觉得这个世界不公平,后来发现这个世界就是不公平,但不公平是好事情,它会让你更努力

一、网络编程

概述:网络编程可以让程序与网络上的其他设备中的程序进行交互。

网络通信模式

  • Client-Server(CS)

Java-网络编程、网络编程三要素(IP地址,端口号,协议)_第1张图片

  • Browser/Server(BS)

Java-网络编程、网络编程三要素(IP地址,端口号,协议)_第2张图片

二、网络编程三要素

  • IP地址:设备在网络中的地址,是唯一的标识
  • 端口:应用程序在设备中唯一的标识
  • 协议:数据在网络中传输的规则,常见的协议有UDP协议和TCP协议

1.IP地址

  • IP(Internet Protocol):全程“互联网协议地址”,是分配给上网设备的唯一标志。
  • 常见的IP分类:IPv4和IPv6

Java-网络编程、网络编程三要素(IP地址,端口号,协议)_第3张图片

Java-网络编程、网络编程三要素(IP地址,端口号,协议)_第4张图片 

IP地址形式:

  • 公网地址
  •  私有地址(局域网使用)
  • 192.168.开头的就是常见的局域网地址,范围即为192.168.0.0--192.168.255.255,专门为组织机构内部使用。

IP常用命令:

ipconfig:查看本机IP地址

ping IP地址:检查网络是否连通

特殊IP地址

  • 本机IP:127.0.0.1或者localhost:称为回送地址也可称本地回环地址,只会寻找当前所在本机。

IP地址操作类——InetAddress

Java-网络编程、网络编程三要素(IP地址,端口号,协议)_第5张图片

import java.net.InetAddress;

/**
 * @author hanhan
 * date 2022/4/25 15:06
 * 努力已经来不及了,你得拼命
 */
public class InetAddressDemo {
    public static void main(String[] args) throws Exception {
        //获取本机地址对象
        InetAddress ip1=InetAddress.getLocalHost();
        System.out.println(ip1);
        System.out.println(ip1.getHostName());//获取该IP地址的主机名
        System.out.println(ip1.getHostAddress());//获取IP地址字符串
        //获取域名的ip对象
        InetAddress ip2=InetAddress.getByName("www.baidu.com");
        System.out.println(ip2.getHostName());
        System.out.println(ip2.getHostAddress());
        //获取公网IP对象
        InetAddress ip3=InetAddress.getByName("39.156.66.14");
        System.out.println(ip3.getHostName());
        System.out.println(ip3.getHostAddress());
        //判断是否能通-ping 5s之内是否可以连通
        System.out.println(ip3.isReachable(5000));
    }
}

2.端口号

概述:标识正在计算机设备上运行的进程(程序),被规定为一个16位的二进制,范围是0~65535。 

端口类型:

  • 周知端口:0~1023,被预先定义的知名应用占用(如:HTTP占用80,FTP占用21)
  • 注册端口:1024~49151,分配给用户进程或某些应用程序。(如:Tomcat占用8080,MySQL占用3306)
  • 动态端口:49152~65535,它一般不固定分配某种进程,而是动态分配

提醒:我们自己开发的程序选择注册端口,且一个设备中不能出现两个程序的端口号一样,否则出错。而在不同设备上同一程序的端口号是一样的

3.通信协议

概述:计算机网络中,连接和通信数据的规则被称为网络通信协议

Java-网络编程、网络编程三要素(IP地址,端口号,协议)_第6张图片

 传输层的2个常见协议

  • TCP:传输控制协议
  • UDP:用户数据报协议

TCP协议特点:

  • 使用TCP协议,必须双方先建立连接,它是一种面向连接的可靠通信协议
  • 传输前,采用“三次握手”方式建立连接,所以是可靠的
  • 在连接中可进行大数据量的传输
  • 连接、发送数据都需要确认,且传输完毕后,还需释放已建立的连接,通信效率极低

TCP协议通信场景

  • 对信息安全要求较高的场景,eg:文件下载,金融等数据通信。

Java-网络编程、网络编程三要素(IP地址,端口号,协议)_第7张图片

Java-网络编程、网络编程三要素(IP地址,端口号,协议)_第8张图片 

UDP协议

  • UDP是一种无连接、不可靠传输的协议
  • 将数据源IP、目的地IP和端口封装成数据包,不需要建立连接
  •  每个数据包的大小限制在64KB内
  • 发送不管对方是否准备好,接收方收到也不确认,故是不可靠的
  • 可以广播发送,发送数据结束时无需释放资源,开销小,速度快

UDP协议通信场景:语音通话,视频会话等

你可能感兴趣的:(JAVA基础学习,java)