通信协议

协议:约定,就好比我们现在说的是普通话

网络通信协议:速率,传输码率,代码结构,传输控制.......

问题:非常的复杂?

大事化小:分层!

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

重要:

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

出名的协议:

  • TCP
  • IP:网络互连协议

通信协议_第1张图片

TCP和UDP对比:

TCP:打电话

  • 连接,稳定
  • 三次握手、四次挥手

(1)最少需要三次,保证稳定连接!(三次握手)

A:你愁啥?

B:瞅你咋地?

A:干一场!

(2)四次挥手

A:我要走了!

B:我真的要走了吗?

B:你真的真的要走了吗?

A:我真的真的要走了!

  • 客户端、服务端
  • 传输完成,释放连接,效率低

UDP:发短信

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

测试IP

(1)TestInetAddress:

package com.leasson01;

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

//测试IP
public class TestInetAddress {
    public static void main(String[] args) {
        try {
            //查询本机地址
            InetAddress inetAddress1 = InetAddress.getByName("127.0.0.1");
            System.out.println(inetAddress1);
            InetAddress inetAddress3 = InetAddress.getByName("localhost");
            System.out.println(inetAddress3);
            InetAddress inetAddress4 = InetAddress.getLocalHost();
            System.out.println(inetAddress4);

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


            //常用方法
            System.out.println(inetAddress2.getAddress());//不重要
            System.out.println(inetAddress2.getCanonicalHostName());//规范的名字
            System.out.println(inetAddress2.getHostAddress());//ip
            System.out.println(inetAddress2.getHostName());//域名或者自己电脑的名字


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


}

输出结果:

通信协议_第2张图片

 

(2)TestInetSocketAddress

package com.leasson01;

import java.net.InetSocketAddress;

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

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

    }
}

输出结果:

通信协议_第3张图片

 

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