UDP完成数据的发送
/*
* 发送端
*/
publicclass UDPSend {
publicstaticvoid main(String[ ] args) throwsIOException {
//1,创建DatagramSocket对象
DatagramSocket sendSocket = newDatagramSocket();
//2,创建DatagramPacket对象,并封装数据
//构造数据报包,用来将长度为 length 的包发送到指定主机上的指定端口号。
byte[ ] buffer = "hello,UDP".getBytes();
DatagramPacket dp = newDatagramPacket(buffer, buffer.length, InetAddress.getByName("192.168.75.58"),8888);
//3,发送数据
sendSocket.send(dp);
//4,释放流资源
sendSocket.close();
}
}
UDP完成数据的接收
/*
* UDP接收端
*/
publicclass UDPReceive {
publicstaticvoid main(String[ ] args) throws IOException {
//1,创建DatagramSocket对象,并指定端口号
DatagramSocket receiveSocket = new DatagramSocket(8888);
//2,创建DatagramPacket对象, 创建一个空的仓库
byte[ ] buffer = newbyte[1024];
DatagramPacket dp = new DatagramPacket(buffer,1024);
//3,接收数据存储到DatagramPacket对象中
receiveSocket.receive(dp);
//4,获取DatagramPacket对象的内容
//谁发来的数据 getAddress()
InetAddress ipAddress = dp.getAddress();
String ip = ipAddress.getHostAddress();//获取到了IP地址
byte[ ] data = dp.getData();
//发来了多少数据 getLenth()
int length = dp.getLength();
//显示收到的数据
String dataStr = new String(data,0,length);
System.out.println("IP地址:"+ip+ "数据是"+ dataStr);
//5,释放流资源
receiveSocket.close();
}
}