接收端
package net.udp;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;
public class UDPRecevie {
public static void main(String[] args) throws IOException {
/*
* 1.建立服务
* 2.创建数据包,用于接受数据
* 3.使用socket服务的方法将接受到的数据放在数据包中
* 4.通过数据包方法对象解析数据,如端口等
* 5.关闭资源
*/
System.out.println("recevice...");
//明确端口号
DatagramSocket ds = new DatagramSocket(10000);
byte[] buf = new byte[1024];
DatagramPacket dp = new DatagramPacket(buf, buf.length);
ds.receive(dp); //阻塞
//4
String ip = dp.getAddress().getHostAddress();
int port = dp.getPort();
String text = new String(dp.getData(), 0, dp.getLength());
System.out.println(ip+":"+port+":"+text);
ds.close();
}
}
发送端
package net.udp;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;
public class UDPSend {
public static void main(String[] args) throws IOException {
/*
* 1.建立udp的socket服务
* 2.封装数据
* 3.将包发送过去
* 4.关闭socket
*/
System.out.println("send...");
//指定
DatagramSocket ds = new DatagramSocket(8888);
String str = " udp data ......";
byte[] buf = str.getBytes();
DatagramPacket dp = new DatagramPacket(buf, buf.length, InetAddress.getByName("10.1.35.73"), 10000);
//3
ds.send(dp);
//4
ds.close();
}
}