JAVA中以两个类来支持UDP通信:
java.net.DatagramPacket
java.net.DatagramSocket
这两个类代表了UDP通信中的数据包和套接字。所以,使用UDP通信也非常简单,简单归纳成三步,就是创建数据包、创建套接字、用套接字发送/接受数据包。
发送UDP数据包
1.创建数据包
发送数据包的时候,一般需要知道远程主机的地址和端口,所以使用DatagramPacket的四参构造函数较为方便:
public DatagramPacket(byte[] buf, int length, InetAddress address, int port)
前两个参数用来指定发送的字节数组及长度,后两个参数用来指定IP地址及端口号。
一个简单的代码段如下:
byte[] buff = "What time is it?".getBytes();
DatagramPacket dp = new DatagramPacket(buff, buff.length, addr, port);
2.创建套接字绑定到本地端口
由于我们并不关心使用哪个端口发送,所以可以使用DatagramSocket的无参构造函数,这样它会任选一个空闲的端口绑定: