DatagramSocket()
创建一个以当前计算机的任意可用端口为发送端口的数据报连接
DatagramSocket(int port)
创建一个以当前计算机的port端口为发送端口的数据报连接
DatagramScoket(int port, InetAddress address)
创建一个以当前计算机的port端口为发送端口,向IP地址为address的计算机发送数据报连接
常用的几个方法:
void close() throws IOException
关闭数据报连接
void recieve(DatagramPacket packet)
接收来自于packet数据报的信息
void send(DatagramPacket packet)
发送packet数据报
void connect(InetAddress address, int port)
以当前计算机指定端口port为发送端口,向IP地址为address的计算机发送数据报连接
void disconnect()
断开连接
DatagramChannel getChannel()
和SocketChannel类似
结合以上两个类的方法,创建一个简单的UDP服务器端如下:
....
// 指定连接端口
DatagramSocket socket = new DatagramSocket(8001)
byte[] buff = new byte[256];
// 指定接受数据报缓冲区大小为字节数组buff大小
DatagramPacket fromPacket = new DatagramPacket(buff,buf.length);
// 接受客户端请求,并将请求数据存储在数据报packet中
packet.recieve(fromPacket);
// 读取数据报中数据
byte rec = packet.getData();
.....
buff = "hello world".toBytes();
InetAddress addr = .....
// 指定发送数据报缓冲区大小为字节数组buff大小,
//发送目的地为addr,端口为8001,数据报内容为数组buff内容
DatagramPacket toPacket = new DatagramPacket(buff,buf.length,addr,8001);
// 发送服务器端数据报toPacket
packet.send(toPacket);
.......
客户端代码与服务器段类似,只要注意接受与发送应该分别是两个不同的数据报。