包的端口一定要和接收端保持一致
/**
* UDP通讯,发送端
*/
package com.hpu.day12;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetSocketAddress;
public class TestSender {
public static void main(String[] args) throws Exception {
/**
* 发送端
* 1、创建客户端 + 端口
* 2、准备数据
* 3、打包(发送的地点 及端口)
* 4、发送
* 5、释放
*/
// 1、创建客户端 + 端口
System.out.println("发送端发送中。。。");
System.out.println("请注意接收。。。");
DatagramSocket client = new DatagramSocket(6666);
// 2、准备数据
String msg = "收到消息了";
byte[] data = msg.getBytes();
// 3、打包(发送的地点 及端口)
DatagramPacket packet = new DatagramPacket(data,data.length,
new InetSocketAddress("localhost",8888));
// 4、发送
client.send(packet);
// 5、释放
client.close();
}
}
/**
* UDP通讯,接收端
*/
package com.hpu.day12;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
public class TestReceiver {
public static void main(String[] args) throws Exception {
/**
* 接收端
* 1、创建服务端 + 接口
* 2、准备接收容器
* 3、封装成 包
* 4、接收数据
* 5、分析数据
* 6、释放
*/
// 1、创建服务端 + 接口
System.out.println("正在接收。。。");
DatagramSocket server = new DatagramSocket(8888);
// 2、准备接收容器
byte[] container = new byte[1024*60];
// 3、封装成 包
DatagramPacket packet = new DatagramPacket(container,container.length);
// 4、接收数据
server.receive(packet);
// 5、分析数据
byte[] data = packet.getData();
int len = packet.getLength();
System.out.println(new String(data,0,len));
// 6、释放
server.close();
}
}