UDP套接字

UDP(User Datagrams Protocol)用户数据报协议,是一种使用数据报的机制来传递信息的协议。数据报(Datagrams)是一种在不同机器之间传递的信息包,该信息包一旦从某一机器被发送给指定目标,那么该发送过程并不会保证数据一定到达目的地,甚至不保证目的地的存在真实性。反之,数据报被接受时,不保证数据没有受损,也不保证发送该数据报的机器仍在等待响应。

由此可见,UDP协议是一种基于数据报的快速的(因为它无需花时间去保证数据是否损坏,无需花时间确定接受方是否存在并等待响应)、无连接的、不可靠的信息包传输协议。

java中,通过两个特定类来实现UDP协议顶层数据报,分别是DatagramPacketDatagramSocket,其中DatagramPacket是一个数据容器,用来保存即将要传输的数据;而DatagramSocket实现了发送和接收DatagramPacket的机制,即实现了数据报的通信方式。 atagramPacket

该类主要有四个常用构造方法,分别如下:

DatagramPacket(byte[] buff, int length)

DatagramPacket(byte[] buf, int offset, int length)

DatagramPacket(byte[] buf, int length, InetAddress address, int port)

DatagramPacket(byte[] buf, int offset, int length, InetAddress address, int port)

第一个构造方法用于创建一个指定数据缓冲区大小和信息包的容量大小的DatagramPacket,第二个构造方法用于创建一个长度大小为length的缓冲区,并指定数据存储(读取)的偏移地址为offsetDatagramPacket。第三个创建一个指定缓冲区大小、传送(接受)IP地址、端口号的DatagramPacket。一般情况下,发送地址是由DatagramSocket指定。

常用的几个方法如下:

byte[] getData()

用于得到发送过来的DatagramPacket中的数据

void setData(byte[] buf)

用于将buf中的数据写入DatagramPacket中,以备发送。

InetAddress getAddress()

返回目标的InetAddress,一般用于发送。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值