客户端代码
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
public class Client {
public static void main(String[] args) throws Exception {
//创建客户端服务对象
final DatagramSocket socket = new DatagramSocket();
//参数1:封装要发送的数据
final byte[] bytes = "我来自中国".getBytes();
//参数2:发送的数据大小
//参数3:服务端的IP地址
//参数4:服务端的端口
//创建数据包对象封装要发送的数据
final DatagramPacket packet =
new DatagramPacket(bytes,bytes.length,
InetAddress.getLocalHost(),8880
);
//发送数据
socket.send(packet);
System.out.println("客户端发送数据完毕");
socket.close();
}
}
服务端代码
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;
public class Server {
public static void main(String[] args) throws Exception {
System.out.println("服务端启动");
//创建服务端对象
final DatagramSocket socket = new DatagramSocket(8880);
//创建一个数据包对象用于接收数据
final byte[] buffer = new byte[1024*64];
final DatagramPacket packet = new DatagramPacket(buffer,buffer.length);
//使用数据包接收数据
socket.receive(packet);
//从字节数组中把接收的数据打印出来
//获取本次数据包接收了多少数据
int len = packet.getLength();
String rs = new String(buffer,0,len);
System.out.println(rs);
System.out.println(packet.getAddress().getHostAddress());
System.out.println(packet.getPort());
socket.close();
}
}
先启动服务端,然后启动客户端