网络编程 —— 了解

计算机网络

是指地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统、网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统

网络编程的目的

无线电台…传播交流信息,数据交换,通信

网络通信的要素

  • 通信双方地址
  • 规则:网络通信的协议

网络模型:
网络编程 —— 了解
网络编程中有两个主要的问题:

  • 如何准确的定位到网络上的一台或者多态主机
  • 找到主机之后如何进行通信

网络编程中的要素:

  • ip和端口号
  • 网络通信协议

ip

ip地址:InteAddress

  • 127.0.0.1 本机地址
  • IP地址的分类:ip地址分类;公网和私网
public class IPTest {
    public static void main(String[] args) {
        try{
            //查询本机地址
            InetAddress inetAddress1 = InetAddress.getByName("127.0.0.1");
            System.out.println(inetAddress1);

            InetAddress inetAddress2 = InetAddress.getByName("localhost");
            System.out.println(inetAddress2);

            InetAddress localHost = InetAddress.getLocalHost();
            System.out.println(localHost);

            //查询网站ip地址
            InetAddress baidu = InetAddress.getByName("www.baidu.com");
            System.out.println(baidu);
            //常用方法
            System.out.println(baidu.getAddress());
            System.out.println(baidu.getCanonicalHostName()); //规范的名字
            System.out.println(baidu.getHostAddress()); //ip
            System.out.println(baidu.getHostName()); //域名
        }catch (Exception e){
            e.printStackTrace();
        }
    }
}

测试结果:

/127.0.0.1
localhost/127.0.0.1
DESKTOP-IHB2C5F/192.168.136.1
www.baidu.com/110.242.68.3
[B@1b6d3586
110.242.68.3
110.242.68.3
www.baidu.com

端口Port

端口表示计算机上的一个程序的进程:

  • 不同的进程有不同的端口号(用于区分软件)
  • 被规定0-65535
  • TCP;UDP,单个协议下面,端口号不能冲突
  • 端口分类:共有端口 0-1023、Http 80、Https 443、FTP 21、Telene 23;程序注册端口:1024 ~ 49151,分配用户或者程序 Tomcat 8080、MySQL 3306、Oracle 1521;动态、私有:49152 ~ 65535
public class PortTest {
    public static void main(String[] args) {
        InetSocketAddress inetSocketAddress1 = new InetSocketAddress("127.0.0.1",8080);
        InetSocketAddress inetSocketAddress2 = new InetSocketAddress("localhost",8080);

        System.out.println(inetSocketAddress1);
        System.out.println(inetSocketAddress2);

        System.out.println(inetSocketAddress1.getAddress());
        System.out.println(inetSocketAddress1.getHostName()); //地址
        System.out.println(inetSocketAddress1.getPort()); //端口
    }
}

测试结果:

/127.0.0.1:8080
localhost/127.0.0.1:8080
/127.0.0.1
activate.navicat.com
8080

通信协议

协议:约定
网络通信协议: 速率、传输码率、传输控制

TCP/IP协议簇:实际上是一组协议

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

TCP 和 UDP 对比

TCP:打电话

  • 连接稳定
  • 三次握手、四次挥手
  • 客户端、服务端
  • 传输完成释放连接,效率低

UDP:发短信

  • 不连接,不稳定
  • 客户端、服务端(没有明确的界限)
  • 不管有没有准备好,都可以发给你
  • DDOS:洪水攻击!饱和攻击!

三次握手:
最少需要三次才能保证稳定连接

  • A去给B发送个信息,告诉B,A要与B建立连接
  • B收到A的信息后,回复A,告诉A,B收到了A的信息,同意建立连接
  • A收到B的回复后,在回复B,告诉B,A还在,建立连接吧

四次挥手:

  • A告诉B,我要断开连接
  • B收到后,回复A,B收到了A要断开连接的信息
  • B询问A,是否真的要断开连接
  • A回复B,确定断开连接
上一篇:Leetcode-剑指 Offer 56 - I: 数组中数字出现的次数


下一篇:vue插件整理