UDP:java.net.DatagramSocket 、 java.net.DatagramPacket
步骤、创建服务端和客户端
一、创建服务端
1、创建服务端 DatagramSocket ,指定接收数据的ip地址和端口
2、准备接收数据的容器-字节数组,封装为DatagramPacket
3、用DatagramPacket包接收数据
4、分析数据
5、释放资源
二、创建客户端
1、创建客户端 DatagramSocket ,指定发送数据的ip地址和端口
2、准备数据-字节数组
3、打包DatagramPacket ,对应服务器地址及端口
4、发送数据
5、释放资源
三、服务端代码:
public class MyService {
public static void main(String[] args) {
try {
// 1、创建服务端 DatagramSocket ,指定接收数据的ip地址和端口
DatagramSocket socket = new DatagramSocket(new InetSocketAddress("localhost", 8888));
// 2、准备接收数据的容器-字节数组,封装为DatagramPacket
byte[] bytes = new byte[1024];
DatagramPacket packet = new DatagramPacket(bytes, 0, bytes.length);
// 3、DatagramPacket接收数据
socket.receive(packet);
// 4、分析数据
byte[] receiveData = packet.getData();
int length = packet.getLength();
System.out.println(new String(receiveData, 0, length));
// 5、释放资源
socket.close();
} catch (SocketException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
四、客户端代码:
public class MyClient {
public static void main(String[] args) {
try {
// 1、创建客户端 DatagramSocket ,指定发送数据的ip地址的和端口
DatagramSocket socket = new DatagramSocket(new InetSocketAddress("localhost", 6666));
// 2、准备数据-字节数组
String sendMsg = "send message";
byte[] bytes = sendMsg.getBytes();
// 3、打包DatagramPacket ,指定服务器地址及端口
DatagramPacket packet = new DatagramPacket(bytes, 0, bytes.length, new InetSocketAddress("localhost", 8888));
// 4、发送数据
socket.send(packet);
// 5、释放资源
socket.close();
} catch (SocketException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}