UDP协议的网络通信
TCP协议:基于虚拟链路的通信协议,协议是【可靠】。
A节点发送数据给B节点之后,B节点需要向A节点发送确认信息
如果A节点没有收到B节点的确认新,A节点会重发之前的信息。
【性能较低】。
UDP协议:无需建立虚拟链路。协议是不可靠的。
A节点以DatagramSocket发送数据报,数据报携带数据。
数据报上还有目标地址,大部分情况下,数据报可以抵达目的。
但在有些情况下,数据报可能会丢失,丢失了也不管。
DatagramSocket与DatagramPacket
DatagramSocket:相当于“码头”,发送、接收【数据报】。
DatagramPacket:代表【数据报】。
发送的一端:
(1) 先创建“码头”(DatagramSocket)
(2) 创建有数据、有目标地址(IP和端口)的数据报。
(3) 发送。
接收的一端:
(1) 先创建有固定IP、固定端口的“码头”(DatagramSocket)
(2) 创建空的数据报。
(3) 接收。
MulticastSocket
广播Socket - 也是一个“码头”。
因此也需要与DategramPacket结合使用。
它多了一个setTimeToLive(int ttl)方法。
TTL是控制数据可以跨过多少网段。
-当ttl为0,说明数据报只能停留在本机。
-当ttl为1,说明数据报只能停留在当前局域网。
-当ttl为32,说明数据报只能停留在本站点的网络
-当ttl为64,说明数据报只能停留在本地区
-当ttl为128,说明数据报只能停留在本大洲
-当ttl为255,说明数据报到达全球。
发送:
与DatagramSocket的发送方法是完全一样的。
只是数据报的地址是一个【特殊的广播地址】。
接受:
(1)要先调用joinGroup(InetAddress mcastaddr)加入指定广播地址。
(2)不断接收即可。
TCP协议:基于虚拟链路的通信协议,协议是【可靠】。
A节点发送数据给B节点之后,B节点需要向A节点发送确认信息
如果A节点没有收到B节点的确认新,A节点会重发之前的信息。
【性能较低】。
UDP协议:无需建立虚拟链路。协议是不可靠的。
A节点以DatagramSocket发送数据报,数据报携带数据。
数据报上还有目标地址,大部分情况下,数据报可以抵达目的。
但在有些情况下,数据报可能会丢失,丢失了也不管。
DatagramSocket与DatagramPacket
DatagramSocket:相当于“码头”,发送、接收【数据报】。
DatagramPacket:代表【数据报】。
发送的一端:
(1) 先创建“码头”(DatagramSocket)
(2) 创建有数据、有目标地址(IP和端口)的数据报。
(3) 发送。
接收的一端:
(1) 先创建有固定IP、固定端口的“码头”(DatagramSocket)
(2) 创建空的数据报。
(3) 接收。
MulticastSocket
广播Socket - 也是一个“码头”。
因此也需要与DategramPacket结合使用。
它多了一个setTimeToLive(int ttl)方法。
TTL是控制数据可以跨过多少网段。
-当ttl为0,说明数据报只能停留在本机。
-当ttl为1,说明数据报只能停留在当前局域网。
-当ttl为32,说明数据报只能停留在本站点的网络
-当ttl为64,说明数据报只能停留在本地区
-当ttl为128,说明数据报只能停留在本大洲
-当ttl为255,说明数据报到达全球。
发送:
与DatagramSocket的发送方法是完全一样的。
只是数据报的地址是一个【特殊的广播地址】。
接受:
(1)要先调用joinGroup(InetAddress mcastaddr)加入指定广播地址。
(2)不断接收即可。