网络编程(1)网络编程三要素
# 网络编程三要素
网络编程是什么?
在网络通信协议下,不同计算机上运行的程序,可以进行数据传输。
思考一个问题?
`A`电脑中的飞秋,发送消息给B电脑中的飞秋。那么需要知道哪些条件才能发送?
举个例子:你想找一个银行柜台的女生并取钱,要做什么?
第一步:你先找到这家银行,也就是银行的地址
第二步:找到这个女孩在第几号柜台工作
第三步: 按照银行的规则,填写取款单。
在这个小故事中,找到这个女孩并成功取钱的要素有什么?
1、银行的地址 ---确定了银行的位置
2、柜台好 ---通过柜台跟客户交流并处理业务
3、填写取款单的规则 ---办理业务的规则
同样的上面的飞秋问题的解决方式就是:
1、确定接收端在网络中的位置
2、确定接收端中飞秋接收数据的入口
3、确定网络中传输数据的规则
所以,网络编程的三要素如下:
1️⃣ IP地址:设备在网络中的地址,是唯一的标识
2️⃣ 端口:应用程序在设备中的唯一标识。
3️⃣ 协议:数据在网络中传输的规则,常见的协议有UDP
协议和TC
P协议
IP
IP
:全称:“互联网协议地址”,是分配给网络设备的数字标签,有IPV4
和IPV6
类型
1️⃣ IPV4
长度为32bit
(4字节),使用点分十进制表示
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);
}
}
运行结果:
端口
端口:应用程序在设备中的唯一的标识
端口号:用两个字节表示的整数,它的取值范围是0-65535
,其中0-1023
之间的端口号用于一些知名的网络服务或者应用。我们自己使用1024
以上的就可以了。
注意:一个端口号只能被一个应用程序使用
协议
协议:计算机网络中,连接和通信的规则称为网络通信协议
1️⃣UDP协议:
- 用户数据报协议(
user Datagram protocol
) UDP
是面向无连接通信协议- 特点:速度快,有大小限制,一次最多发送
64K
,数据不安全,容易丢失数据
看下图,不管发送端与接收端有没有建立连接,都会尝试把数据发送出去,所以有可能导致数据丢失。
应用场景:传输音频/视频等
2️⃣TCP协议
- 传输控制协议(
Transmission Control Protocol
) TCP
协议是面向连接的通信协议- 特点:速度慢,没有大小限制,数据安全