html代码跟网站运营的关系,淘宝客网站 建设要钱不,纪检网站建设计划,dw制作网页用的模板Java网络教程 - Java网络UDP套接字 TCP套接字是面向连接的#xff0c;基于流。基于UDP的套接字是无连接的#xff0c;基于数据报。
使用UDP发送的数据块称为数据报或UDP数据包。每个UDP分组具有数据#xff0c;目的地IP地址和目的地端口号。
无连接套接字在通信之前不建立…Java网络教程 - Java网络UDP套接字 TCP套接字是面向连接的基于流。基于UDP的套接字是无连接的基于数据报。
使用UDP发送的数据块称为数据报或UDP数据包。每个UDP分组具有数据目的地IP地址和目的地端口号。
无连接套接字在通信之前不建立连接。
UDP是不可靠的协议因为它不保证到达分组的传递和顺序。
在无连接协议UDP中不会有服务器套接字。
在UDP连接中客户端和服务器发送或接收一组数据而无需事先知道它们之间的通信。
发送到同一目的地的每个数据块独立于先前发送的数据。
当编码UDP连接时使用以下两个类。
DatagramPacket类表示UDP数据报。DatagramSocket类表示用于发送或接收数据报包的UDP套接字。
以下代码显示如何在localhost中创建绑定到端口号12345的UDP套接字。
DatagramSocket udpSocket new DatagramSocket(12345, localhost);DatagramSocket 类提供了一个bind()方法它允许您将套接字绑定到本地IP地址和本地端口号。 DatagramPacket
DatagramPacket包含三个东西
目的IP地址目的端口号数据
DatagramPacket类的构造函数创建一个数据包来接收数据如下
DatagramPacket(byte[] buf, int length)
DatagramPacket(byte[] buf, int offset, int length)DatagramPacket类的构造函数创建一个数据包来发送数据如下
DatagramPacket(byte[] buf, int length, InetAddress address, int port)
DatagramPacket(byte[] buf, int offset, int length, InetAddress address, int port)
DatagramPacket(byte[] buf, int length, SocketAddress address)
DatagramPacket(byte[] buf, int offset, int length, SocketAddress address)以下代码演示如何创建数据报
以下代码创建一个数据包以接收1024字节的数据。
byte[] data new byte[1024];
DatagramPacket packet new DatagramPacket(data, data.length);以下代码创建一个包的缓冲区大小为1024并从偏移量8开始接收数据它将只接收32字节的数据。
byte[] data2 new byte[1024];
DatagramPacket packet2 new DatagramPacket(data2, 8, 32);数据包中的数据总是指定偏移量和长度。我们需要使用offset和length来读取数据包中的数据。