1、指定socket端口
2、在发送的包中指定发送到的地址和端口
3、发送的包中的端口必须和接受端的socket端口相同
package UdpClient;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetSocketAddress;
import java.net.SocketException;
/**
* 发送端
* 1、使用DatagramSocket 指定端口,创建发送端
* 2、准备数据,一定转成字节数组
* 3、封装成DatagramSocket包裹,需要指定目的地
* 4、发送包裹send(DatagramSocket p)
* 5、释放资源
*/
public class UdpClient {
public static void main(String[] args) throws Exception {
System.out.println("发送方启动中。。。。。。");
// 1、使用DatagramSocket 指定端口,创建发送端
DatagramSocket client = new DatagramSocket(8888);
// 2、准备数据,一定转成字节数组
String data = "好好学习";
byte[] datas = data.getBytes();
// 3、封装成DatagramSocket包裹,需要指定目的地
DatagramPacket packet = new DatagramPacket(datas, datas.length,
new InetSocketAddress("localhost",
9999));
// 4、发送接收包裹receive(DatagramSocket p)
client.send(packet);
// 6、释放资源
client.close();
}
}
package UdpClient;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetSocketAddress;
import java.net.SocketException;
/**
* 接受端
* 1、使用DatagramSocket 指定端口,创建接收端
* 3、准备容器,封装成DatagramSocket包裹
* 4、阻塞式接收包裹receive(DatagramSocket p)
* 5、分析数据
* byte[] getData()
* getLength()
* 6、释放资源
*/
public class UdpServer {
public static void main(String[] args) throws Exception {
System.out.println("接收方启动中。。。");
// 1、使用DatagramSocket 指定端口,创建接收端
DatagramSocket server = new DatagramSocket(9999);
// 2、准备容器,封装成DatagramSocket包裹
byte[] container = new byte[1024 * 60]; // 60k
DatagramPacket packet = new DatagramPacket(container, container.length);
// 4、阻塞式接收包裹receive(DatagramSocket p)
server.receive(packet);
// 5、分析数据
// byte[] getData()
// getLength()
byte[] datas = packet.getData();
int len = packet.getLength();
System.out.println(new String(datas));
// 6、释放资源
server.close();
}
}
网友评论