网络编程(1)网络编程三要素

# 网络编程三要素

网络编程是什么?

	在网络通信协议下,不同计算机上运行的程序,可以进行数据传输。

思考一个问题?

	`A`电脑中的飞秋,发送消息给B电脑中的飞秋。那么需要知道哪些条件才能发送?

举个例子:你想找一个银行柜台的女生并取钱,要做什么?

	第一步:你先找到这家银行,也就是银行的地址

	第二步:找到这个女孩在第几号柜台工作

	第三步: 按照银行的规则,填写取款单。

在这个小故事中,找到这个女孩并成功取钱的要素有什么?

	1、银行的地址   ---确定了银行的位置

	2、柜台好   ---通过柜台跟客户交流并处理业务

	3、填写取款单的规则    ---办理业务的规则

同样的上面的飞秋问题的解决方式就是:

	1、确定接收端在网络中的位置

	2、确定接收端中飞秋接收数据的入口

	3、确定网络中传输数据的规则

所以,网络编程的三要素如下

1️⃣ IP地址:设备在网络中的地址,是唯一的标识

2️⃣ 端口:应用程序在设备中的唯一标识。

3️⃣ 协议:数据在网络中传输的规则,常见的协议有UDP协议和TCP协议

IP

IP:全称:“互联网协议地址”,是分配给网络设备的数字标签,有IPV4IPV6类型

1️⃣ IPV4

长度为32bit(4字节),使用点分十进制表示

image-20200609232927501

2️⃣ IPV6

由于互联网的蓬勃发展,IPV4模式下的IP的总数不够用了,ipv6的长度为128位,分成8组,使用冒分十六进制表示。

特殊情况:如果计算出的16进制表示形式中间有多个连续的0

特殊IP地址:127.0.0.1:是回送地址也称本地回环地址,可以代表本机的IP地址,一般用来测试使用

3️⃣InetAdress

为了方便我们对IP地址的获取和操作,JAVA提供了InetAddress供我们使用

InetAddress: 此类表示Internet协议(IP)地址

这个类没有构造方法,所以无法直接创建对象,但是可以通过该类的静态方法getByName()来获取InetAddress对象。

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

public class Test{
    public static void main(String[] args) throws UnknownHostException {
        InetAddress address=InetAddress.getByName("DESKTOP-LEUS976");

        String hostName=address.getHostName();
        System.out.println("主机名是:"+ hostName);

        String ip=address.getHostAddress();
        System.out.println("IP是:"+ip);
    }
}

运行结果:

image-20200609234951728

端口

端口:应用程序在设备中的唯一的标识

端口号:用两个字节表示的整数,它的取值范围是0-65535,其中0-1023之间的端口号用于一些知名的网络服务或者应用。我们自己使用1024以上的就可以了。

注意:一个端口号只能被一个应用程序使用

协议

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

1️⃣UDP协议:

  • 用户数据报协议(user Datagram protocol)
  • UDP面向无连接通信协议
  • 特点:速度快,有大小限制,一次最多发送64K,数据不安全,容易丢失数据

看下图,不管发送端与接收端有没有建立连接,都会尝试把数据发送出去,所以有可能导致数据丢失。

应用场景:传输音频/视频等

2️⃣TCP协议

  • 传输控制协议(Transmission Control Protocol)
  • TCP协议是面向连接的通信协议
  • 特点:速度慢,没有大小限制,数据安全
posted @ 2020-08-27 23:38  Whatever_It_Takes  阅读(311)  评论(0编辑  收藏  举报