UDP
将数据及源和目的封装成数据包中,不需要建立连接
每个数据报的大小限制在64k内
因无连接,是不可靠协议
不需要建立连接,速度快
步话器(对讲机)就是UDP传输。
1.面向无连接的,网络通讯有两端,你到底在不在不重要,我就是把这个数据打成包发出去,
你在 就收到了,你不在 就丢掉。
我在发数据之前,咱俩不需要先建立连接。发送之前要打包。
但是对方的地址和端口号要知道。
可对方这地址不一定存在,端口也不一定开着。
2.它发的包是有限制的,一次不超过64K,超过64K的数据分成多包发。
3.不可靠,我发个2兆的东西,它需要分成许多小包发,我刚开始还能发成功,后来对方断开了,我还在这发,这种情况有可能,数据就丢失了。
4.但是它也有好处,速度快。我不用先确认对方在不在,不重要。我直接到位,如果对方在的话直接就收到了,
这种方式在生活中常见吗?咱聊天就是UDP的,qq飞秋聊天,凌波桌面共享,网络视频会议都是UDP的。丢点数据不重要,为了求速度。
UDP传输 :
DatagramSocket 与 DatagramPacket
java.net
类 DatagramSocket
此类表示用来发送和接收数据报包的套接字(插座)。
这个套接字既能发送又能接收,两个通讯端点都得有这个。
用它建立端点。建立完之后,这个类有发送和接收的方法:
void |
receive(DatagramPacket p) 从此套接字接收数据报包。 |
void |
send(DatagramPacket p) 从此套接字发送数据报包。 |
发送什么东西得指定一下,UDP要把数据封装成包发送出去,所以它又给我们提供了数据包对象。
数据包中会封装什么呢?包里有饼干(数据实体)、盒子上贴有发送地址发送人和收货地址收货人(发送和接收两端的地址和端口号&